比较两列与熊猫

时间:2020-07-27 23:22:40

标签: python pandas dataframe

我有两个数据框:df1,df2

name     gender
John      1
David     1 
Lilly     0
Young     0
Lisa      0
Wang      1

 name     gender
 Andy      1
 Lilly     1 
 Wang     0
 Mina    0
 John     0
 Claire      1

两个数据框都是名称-性别对。我正在尝试检测相同的名称,但在两个数据框中都分配了不同的性别(例如,将df1中的Lilly分配为0,将df2中的Lilly分配为1)。我只想显示一个数据框即可显示。

我用过代码

df2[df2[df1['name'] == df2['name'] and df2['gender'] != df1['gender']]

此代码不会返回错误,但会一直运行。我想知道我做错了什么。有任何熊猫命令可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

merge过滤,然后过滤drop

df2.merge(df1,on='name',suffixes=('','d')).query('gender!=genderd').drop('genderd',1)
   name  gender
0  Lilly       1
1   Wang       0
2   John       0