【发布时间】:2022-01-24 09:19:52
【问题描述】:
假设我有这两个列数相同但行数可能不同的数据框:
tmp = np.arange(0,12).reshape((4,3))
df = pd.DataFrame(data=tmp)
tmp2 = {'a':[3,100,101], 'b':[4,4,100], 'c':[5,100,3]}
df2 = pd.DataFrame(data=tmp2)
print(df)
0 1 2
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
print(df2)
a b c
0 3 4 5
1 100 4 100
2 101 100 3
我想验证df2 的行是否与df 的任何行匹配,即我想获得一系列(或数组)给出此结果的布尔值:
0 True
1 False
2 False
dtype: bool
我认为类似isin 的方法应该可以工作,但是我得到了这个结果,它导致了一个数据框并且是错误的:
print(df2.isin(df))
a b c
0 False False False
1 False False False
2 False False False
作为约束,我不希望使用merge 方法,因为我所做的实际上是在应用合并之前检查数据。
感谢您的帮助!
【问题讨论】:
标签: python pandas dataframe matching isin