Pandas左连接合并DataFrame时产生NaN值问题求助
Pandas左连接后出现全NaN的解决方案
核心排查与解决方法
检查连接键数据类型一致性
若Customer列的数据类型不一致(比如一个是字符串、一个是数值类型),会直接导致匹配失败。先执行代码确认类型:print(df1['Customer'].dtype) print(df2['Customer'].dtype)若类型不统一,将两列都转为字符串类型:
df1['Customer'] = df1['Customer'].astype(str) df2['Customer'] = df2['Customer'].astype(str)清理连接键隐藏字符
有时候Customer列看起来是相同的字符,实际包含前后空格、换行符等隐藏内容,也会造成匹配失效。执行代码清理:df1['Customer'] = df1['Customer'].str.strip() df2['Customer'] = df2['Customer'].str.strip()处理列名重复问题
你提供的两个DataFrame都有Margin Percent列,合并后Pandas会自动给列名加上_x(来自df1)和_y(来自df2)的后缀。如果需要自定义后缀,可使用suffixes参数:merged_df = df1.merge(df2, on=["Customer"], how='left', suffixes=('_df1', '_df2'))另外注意:你给出的输出里出现了
Win Ratio列,但提供的df2列名为Margin Percent,若实际df2的目标列是Win Ratio,请确认合并时的列名对应关系是否正确。
验证操作
修改后重新执行合并代码,查看结果:
merged_df = df1.merge(df2, on=["Customer"], how='left') print(merged_df)
内容的提问来源于stack exchange,提问作者snakshak12
相关产品推荐
相关产品推荐

