如何验证 pandas dataFrame 的两个系列是否具有相同的元素?

How do I verify that two series of a pandas dataFrame have the same elements?

我想比较数据帧中的两个系列,并得到关于它们是否具有完全相同元素的布尔值 True 或 False 答案。

如果一个元素不同,那么我想知道它的索引号。

谢谢!

IIUC 你可以使用 isin:

In [123]:
s1 = pd.Series(np.arange(5))
s2 = pd.Series(np.arange(1,6))
s2

Out[123]:
0    1
1    2
2    3
3    4
4    5
dtype: int32

In [125]:    
s1.isin(s2)

Out[125]:
0    False
1     True
2     True
3     True
4     True
dtype: bool

从上面你可以通过使用 ~:

否定掩码来获得 False 的索引值
In [127]:
s1[~s1.isin(s2)].index

Out[127]:
Int64Index([0], dtype='int64')

EdChum,感谢您的回答!

它比我设法解决的问题要好,无论如何我都会 post 下面:

ser1 = Series(np.arange(16))
arr = ser1.reshape(4,4)
df = DataFrame((arr),columns=['a','b','c','d'])
ser_e = Series([2,6,10,14])
df['e'] = ser_e

df['c']>df['b']
df.loc[df['c'] != df['e'] ]