在 Python 中合并数据框时出现重复的行
Posted
技术标签:
【中文标题】在 Python 中合并数据框时出现重复的行【英文标题】:Duplicated rows when merging dataframes in Python 【发布时间】:2016-12-25 11:12:02 【问题描述】:我目前正在使用外部连接合并两个数据框。但是,合并后,即使合并的列包含相同的值,我也会看到所有行都是重复的。
具体来说,我有以下代码。
merged_df = pd.merge(df1, df2, on=['email_address'], how='inner')
这是两个数据框和结果。
df1
email_address name surname
0 john.smith@email.com john smith
1 john.smith@email.com john smith
2 elvis@email.com elvis presley
df2
email_address street city
0 john.smith@email.com street1 NY
1 john.smith@email.com street1 NY
2 elvis@email.com street2 LA
merged_df
email_address name surname street city
0 john.smith@email.com john smith street1 NY
1 john.smith@email.com john smith street1 NY
2 john.smith@email.com john smith street1 NY
3 john.smith@email.com john smith street1 NY
4 elvis@email.com elvis presley street2 LA
5 elvis@email.com elvis presley street2 LA
我的问题是,不应该这样吗?
这就是我希望我的merged_df
的样子。
email_address name surname street city
0 john.smith@email.com john smith street1 NY
1 john.smith@email.com john smith street1 NY
2 elvis@email.com elvis presley street2 LA
有什么方法可以实现吗?
【问题讨论】:
我的评论可能看起来很傻,但你的合并不应该是 merge_list = pd.merge(list_1 , list_2 , on=['email_address'], how='inner') 吗? Pandas Merge - How to avoid duplicating columns的可能重复 是的,我的描述有误,已修复!无论如何,我目前在 python 中的查询正如你所说:D 谢谢! 【参考方案1】:list_2_nodups = list_2.drop_duplicates()
pd.merge(list_1 , list_2_nodups , on=['email_address'])
预计会有重复的行。 list_1
中的每个 john smith 与 list_2
中的每个 john smith 匹配。我不得不将重复项放在其中一个列表中。我选择了list_2
。
【讨论】:
啊,我明白了。再次感谢您的澄清,确实有效! @RobertoBertinetti,请考虑accepting,如果您认为它已经回答了您的问题,请点赞 对不起,我花了很长时间,但我做到了:) 这对我不起作用。我知道为什么,但我仍然得到重复的值以上是关于在 Python 中合并数据框时出现重复的行的主要内容,如果未能解决你的问题,请参考以下文章
如何在 R 中合并同一数据框中的行(基于特定列下的重复值)?