我有两个数据帧,由列
组成df有列:id1
id1
1
2
3
4
5
6
df2有列:id2
id2
2
1
5
4
正如你在df1中看到的那样,有些值不在df2中[' id2']
3,6
有没有办法通过区分两个数据帧列来找到它 或任何其他方式?
我尝试使用
df2.isin(df1)
但只获得bool值。
但我想要实际的行
答案 0 :(得分:4)
有许多方法可以解决这个问题,但Pandas索引对象有一个difference
方法,可以从调用索引中找到第二个索引中缺少的所有索引。
idx1 = pd.Index(df.id1)
idx2 = pd.Index(df.id2)
idx1.difference(idx2).values
array([3, 6])
使用isin
,您将得到相同的结果:
df[~df.id1.isin(df2.id2)]
答案 1 :(得分:1)
您也可以使用设置操作
list(set(df.id1) - set(df2.id2))
[3, 6]