我想比较一个dataFrame中的两个系列,并获得一个布尔真或假的答案,看它们是否具有完全相同的元素。
如果元素不同,那么我想知道它的索引号。
谢谢!
答案 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)
这比我设法解决的更好,我将在下面发布:
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'] ]