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

时间:2016-03-31 10:29:49

标签: python pandas compare series

我想比较一个dataFrame中的两个系列,并获得一个布尔真或假的答案,看它们是否具有完全相同的元素。

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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')

答案 1 :(得分:0)

EdChum,谢谢你的回答!

这比我设法解决的更好,我将在下面发布:

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'] ]