比较dataframe python的两列后查找额外值

比较dataframe python的两列后查找额外值,python,pandas,Python,Pandas,我有两个数据帧,由列组成 df有一个列:id1 id1 1 2 3 4 5 6 df2有一个列:id2 id2 2 1 5 4 正如您在df1中看到的,有些值不在df2['id2'] 3,6 有没有办法通过对两个数据帧列进行差分来找到它 还是其他方式 我试着用它 df2.isin(df1) 但只得到布尔值 但是我想要实际的行有很多方法可以解决这个问题,但是熊猫索引对象有一个差异方法,可以从调用索引的第二个索引中查找缺少的所有索引 idx1 = pd.Inde

我有两个数据帧,由列组成

df有一个列:id1

id1 
 1  
 2  
 3
 4
 5 
 6
df2有一个列:id2

id2
 2 
 1
 5
 4
正如您在df1中看到的,有些值不在df2['id2']
3,6

有没有办法通过对两个数据帧列进行差分来找到它 还是其他方式

我试着用它

df2.isin(df1)

但只得到布尔值


但是我想要实际的行

有很多方法可以解决这个问题,但是熊猫索引对象有一个
差异
方法,可以从调用索引的第二个索引中查找缺少的所有索引

idx1 = pd.Index(df.id1)
idx2 = pd.Index(df.id2)

idx1.difference(idx2).values

array([3, 6])
使用
isin
您将获得与此相同的结果:

df[~df.id1.isin(df2.id2)]

您还可以使用set操作

list(set(df.id1) - set(df2.id2))

[3, 6]

后一个例子是我需要的,非常简单。谢谢