基于列值合并含不可删除重复行的pandas DataFrame的方法
合并方案及报错原因说明
报错原因
你调用pd.merge()时使用的on参数要求传入的列名必须同时存在于两个DataFrame中,而你需要的匹配规则是df1的FromPatchID列等于df2的Id列,两个关联列名不一致,因此触发KeyError,该报错和df1的重复行没有关联。
正确实现代码
使用left_on和right_on参数分别指定左右表的关联列即可:
df_merged = pd.merge(df1, df2, left_on='FromPatchID', right_on='Id')
效果说明
该方法会自动完成一对多匹配:df1中所有FromPatchID相同的行,都会关联上df2中对应Id行的MMM、LB等字段值,完全符合你给出的预期输出格式,不需要提前处理df1的重复行。
内容的提问来源于stack exchange,提问作者Gabriel Lucas
相关产品推荐
相关产品推荐

