我有两个数据框: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']]
此代码不会返回错误,但会一直运行。我想知道我做错了什么。有任何熊猫命令可以解决这个问题吗?
答案 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