Pandas合并DataFrame问题:仅添加weight列避免生成重复列
解决DataFrame合并后重复列并添加weight列的问题
直接用pandas.merge()方法,指定匹配键和左连接方式就能实现需求,不会产生重复的Age、Eye Color列:
代码示例
import pandas as pd # 创建原始DataFrame df1 = pd.DataFrame({ 'Age': [20, 22, 44], 'Eye Color': ['Yellow', 'brown', 'black'] }) df2 = pd.DataFrame({ 'Age': [20], 'Eye Color': ['Yellow'], 'weight': [23] }) # 左连接合并,以Age和Eye Color为匹配键 df3 = pd.merge(df1, df2, on=['Age', 'Eye Color'], how='left') print(df3)
输出结果
Age Eye Color weight 0 20 Yellow 23.0 1 22 brown NaN 2 44 black NaN
关键说明
on=['Age', 'Eye Color']:明确指定两列作为合并的匹配键,避免自动匹配时出现age_x/age_y这类重复列how='left':保留左表(df1)的所有行,右表(df2)中匹配不到的行对应列填充NaN,完全符合你要的结果
内容的提问来源于stack exchange,提问作者HoyaMiner
相关产品推荐
相关产品推荐

