Wie wäre es damit. Überprüfen Sie zunächst die NaNs sind an der gleichen Stelle (mit isnull):
In [11]: s1.isnull()
Out[11]:
0 False
1 True
dtype: bool
In [12]: s1.isnull() == s2.isnull()
Out[12]:
0 True
1 True
dtype: bool
dann die Werte überprüfen, die nicht NaN gleich sind (mit notnull):
In [13]: s1[s1.notnull()]
Out[13]:
0 1
dtype: float64
In [14]: s1[s1.notnull()] == s2[s2.notnull()]
Out[14]:
0 True
dtype: bool
Um gleich wir zu sein müssen beide wahr sein:
In [15]: (s1.isnull() == s2.isnull()).all() and (s1[s1.notnull()] == s2[s2.notnull()]).all()
Out[15]: True
Sie können auch überprüfen, Name usw., wenn dies nicht ausreichend war.
Wenn Sie erhöhen wollen wenn sie unterschiedlich sind, verwenden assert_series_equal
von pandas.util.testing
:
In [21]: from pandas.util.testing import assert_series_equal
In [22]: assert_series_equal(s1, s2)
Dies funktioniert, schade es löst eine Ausnahme und nicht nur falsch zurück. –
@DunPeal hat ein Update hinzugefügt, das das Richtige tut. –
danke, das funktioniert gut. Ich denke, es könnte für Pandas Sinn machen, eine Methode hinzuzufügen, die dieses kleine Snippet zu Series abstrahiert. –