pandas按公共列inner合并两个DataFrame如何避免生成_x/_y后缀列
问题原因
你当前仅指定Name作为连接键,A、B属于两个表的同名非连接字段,pandas合并时默认会添加_x、_y后缀做区分,可根据你的实际场景选择以下方案解决:
方案1:共有列值完全匹配(适配你的示例场景)
如果两个表中Name匹配的行,对应的A、B列值完全一致,直接把所有共有列都设为连接键即可,最终只会保留一份共有列:
df_merged = dfa.merge(dfb, how="inner", on=["Name", "A", "B"])
方案2:共有列值可能存在差异
如果你需要以某一个表的A、B列为准,合并时仅传入另一个表的非同名列即可,比如以dfa的A、B为准的写法:
df_merged = dfa.merge(dfb[["Name", "D"]], how="inner", on="Name")
内容的提问来源于stack exchange,提问作者Pamela
相关产品推荐
相关产品推荐

