2017-01-17 57 views
1

我有两个dataframes其中包括列后找到多余的值对比数据框蟒蛇的两列

DF具有柱:ID1

id1 
1 
2 
3 
4 
5 
6 

DF2具有柱:ID2

id2 
2 
1 
5 
4 

正如你在df1中看到的那样,有些值不在df2中['id2'] 3,6

有没有什么办法通过做两个数据帧列 或任何其他方式的差异来找到它?

我尝试了使用

df2.isin(df1)

,但只得到布尔值。

,但我想实际行

回答

3

有许多的方法可以解决这个问题,但熊猫索引对象有一个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

你也可以使用组操作

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

[3, 6]