我希望比较Pandas中的2系列。我有以下代码
a = pd.Series([1, 2, 3, 4], index = [1, 2, 3, 4])
b = pd.Series([1, 1, 1], index = [1, 5, 4])
a[~a.eq(b)]
当系列为空时,即尚未添加任何值。
b = pd.Series()
a[~a.eq(b)]
两种情况都给我以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda3\lib\site-packages\pandas\core\ops.py", line 735, in wrapper
raise ValueError('Series lengths must match to compare')
ValueError: Series lengths must match to compare
我希望得到的价值是:
2 2
3 3
4 4
在第一种情况下,在后一种情况下如下:
1 1
2 2
3 3
4 4
答案 0 :(得分:1)
对于相同的索引,我认为你需要Series.reindex
:
print (b.reindex(a.index))
1 1.0
2 NaN
3 NaN
4 1.0
dtype: float64
print (a[~a.eq(b.reindex(a.index))])
2 2
3 3
4 4
dtype: int64
print (a[~a.eq(b.reindex(pd.Series([]).index))])
1 1
2 2
3 3
4 4
dtype: int64