gpt4 book ai didi

python - Pandas 合并两个数据框而不重复列

转载 作者:行者123 更新时间:2023-12-01 02:51:31 31 4
gpt4 key购买 nike

我的问题类似于Pandas Merge - How to avoid duplicating columns但我找不到下面具体示例的解决方案。

我有 DateFrame df:

Customer    Address
J. Smith 10 Sunny Rd Timbuktu

和数据框电子邮件:

Name        Email
J. Smith j.smith@myemail.com

我想合并两个数据帧以生成:

Customer    Address                 Email
J. Smith 10 Sunny Rd Timbuktu j.smith@myemail.com

我正在使用以下代码:

data_names = {'Name':data_col[1], ...}
mapped_name = data_names['Name']
df = df.merge(emails, how='inner', left_on='Customer', right_on=mapped_name)

结果是:

Customer    Address                 Email                 Name
J. Smith 10 Sunny Rd Timbuktu j.smith@myemail.com J. Smith

虽然我可以删除名为mapped_name的列,但mapped_name可能是“Customer”,在这种情况下,我不想删除两个Customer列。

有什么想法吗?

最佳答案

我认为您可以将 email 数据框中的第一列重命名为 Customerhow='inner' 可以省略,因为默认值:

emails.columns = ['Customer'] + emails.columns[1:].tolist()

df = df.merge(emails, on='Customer')
print (df)
Customer Address Email
0 J. Smith 10 Sunny Rd Timbuktu j.smith@myemail.com

与另一个答案类似的解决方案 - 可以重命名 [0] 选择的第一列:

df = df.merge(emails.rename(columns={emails.columns[0]:'Customer'}), on='Customer')
print (df)
Customer Address Email
0 J. Smith 10 Sunny Rd Timbuktu j.smith@myemail.com

关于python - Pandas 合并两个数据框而不重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44713493/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com