在比较两列dataframe python之后找到额外的值

时间:2017-01-17 05:39:43

标签: 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)

但只获得bool值。

但我想要实际的行

2 个答案:

答案 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]