Que diriez-vous de ceci ? Vérifiez tout d'abord que les NaNs sont au même endroit (à l'aide de 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
Vérifiez ensuite que les valeurs qui ne sont pas NaN sont égales (en utilisant 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
Pour être égaux, nous avons besoin que les deux soient vrais :
In [15]: (s1.isnull() == s2.isnull()).all() and (s1[s1.notnull()] == s2[s2.notnull()]).all()
Out[15]: True
Vous pouvez également vérifier le nom, etc. si cela ne suffit pas.
Si vous voulez soulever s'ils sont différents, utilisez assert_series_equal
de pandas.util.testing
:
In [21]: from pandas.util.testing import assert_series_equal
In [22]: assert_series_equal(s1, s2)