Python Pandas合并两个DataFrame时pd.merge结果不符如何解决
你当前合并结果不符合预期的核心原因是合并键选择错误。你将apple_wgt_colour、apple_wgt_no_colour也设置为了关联字段,这两个字段大概率是分别属于df1和df2的独有属性,两个表中这两个字段的取值大多不匹配,外连接时就会把两边不匹配的行单独拆分成新行,产生大量空值。
场景1:两个DataFrame行数完全一致、行顺序一一对应,无需按字段匹配关联
直接按列横向拼接即可,使用pd.concat方法:
import pandas as pd result = pd.concat([df1.reset_index(drop=True), df2.reset_index(drop=True)], axis=1)
这里加reset_index(drop=True)是为了避免两个表原有索引不一致导致拼接出空值的问题。
场景2:需要按苹果IDapple_id关联两个表的属性
仅保留apple_id作为唯一合并键即可,不要把两个表的独有属性字段加入关联键:
result = pd.merge(df1, df2, how='outer', on='apple_id')
内容的提问来源于stack exchange,提问作者Muhammad Abdul Haiy Halid
相关产品推荐
相关产品推荐

