You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python合并DataFrame:保留全部SKU并补全供应商价格

多DataFrame合并保留全SKU并填充缺失价格方案

核心思路

以包含所有SKU的df1为基准,通过**左连接(left join)**依次合并df2和df3,确保所有SKU都被保留,缺失的供应商价格自动填充为NaN,之后可按需替换为0。

具体代码实现

# 第一步:以df1为基础左连接df2,保留所有SKU,缺失价格为NaN
temp_df = df1.merge(df2, on='Product SKU', how='left')

# 第二步:继续左连接df3,补充供应商2的价格
df4 = temp_df.merge(df3, on='Product SKU', how='left')

# 可选:重命名列名至目标格式
df4.rename(columns={
    'Price(supplier 1)': 'Supplier 1 Price',
    'Price(Supplier 2)': 'Supplier 2 Price'
}, inplace=True)

# 可选:将NaN替换为0(不需要则跳过此行)
df4.fillna(0, inplace=True)

常见问题排查

  • 之前用merge/join失败,大概率是没指定how='left',默认的内连接(inner join)会只保留双方都有的SKU,导致丢失数据;
  • concatenate是按行拼接,不做列匹配,完全不适用这种按SKU关联的场景;
  • 如果用join,需先把Product SKU设为所有DataFrame的索引,否则会按默认索引匹配,导致关联错误。

内容的提问来源于stack exchange,提问作者Ushir Maharaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:03:16