【发布时间】:2019-08-23 09:05:23
【问题描述】:
有2个dfs
df1 和 df2
df1 contains:
account_id account_name
0 37469426 Name1
1 71508517 Name2
2 85304427 Name3
3 115964688 Name4
4 119853529 Name4
df2 contains:
account_id account_name
0 37469426 Name1
1 71508517 Name2
2 85304427 Name3
3 115964688 Name4
4 119853529 Name4
5 1111 Test
我想比较它们,在 df3 中是 df1 中不在 df2 中的值
在这种情况下,它应该什么也不返回。
数据类型相同,列相同,值的数量不同。
我试过concat和merge,但是结果是错误的。
merged = pd.merge(df1 , df2, on=['account_id', 'account_name'], how='right')
#returns:
account_id account_name
0 37469426 Name1
1 71508517 Name2
2 85304427 Name3
3 115964688 Name4
4 119853529 Name5
merged = pd.merge(df1 , df2, on=['account_id', 'account_name'], how='left')
#returns:
0 37469426 Name1
1 71508517 Name2
2 85304427 Name3
3 115964688 Name4
4 119853529 Name4
5 1111 Test
#inner / outer return everything
0 37469426 Name1
1 71508517 Name2
2 85304427 Name3
3 115964688 Name4
4 119853529 Name4
5 1111 Test
compare_ga_accounts = pd.concat([df1 , df2])
compare_ga_accounts.drop_duplicates(keep=False, inplace=True)
#returns:
account_id account_name
0 1111 Test
我不知道为什么会这样((
【问题讨论】: