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

如何按SKU匹配两个DataFrame,将第一个的Quantity值同步到第二个对应行

基于SKU匹配覆盖DataFrame的Quantity列实现方案

实现思路

  • 以DataFrame1的SKU列为键、Quantity列为值构建映射字典
  • 用DataFrame2的SKU列匹配映射字典,直接替换对应Quantity列的值,其他列数据不受影响

完整实现代码

import pandas as pd

# 构造示例DataFrame1
df1 = pd.DataFrame({
    'SKU': ['A', 'B', 'C', 'D'],
    'Quantity': [3, 4, 5, 6],
    'Title': ['Scissors', 'Cable', 'Goat', 'Cheese']
})

# 构造示例DataFrame2
df2 = pd.DataFrame({
    'SKU': ['A', 'B', 'C', 'D'],
    'Quantity': [1, 2, 1, 2],
    'Title': ['Blue Scissors', 'Red Cables', 'Fat Goat', 'Smelly Cheese']
})

# 构建SKU到Quantity的映射字典
sku_qty_map = df1.set_index('SKU')['Quantity'].to_dict()

# 替换df2的Quantity列
df2['Quantity'] = df2['SKU'].map(sku_qty_map)

# 可选:如果df2存在df1没有的SKU,想要保留原有Quantity值,可改用以下写法
# df2['Quantity'] = df2['SKU'].map(sku_qty_map).fillna(df2['Quantity'])

执行后df2的输出结果

SKU  Quantity          Title
0   A         3  Blue Scissors
1   B         4     Red Cables
2   C         5       Fat Goat
3   D         6  Smelly Cheese

注意事项

  • 若DataFrame1中存在重复SKU,需先对SKU做去重处理,按需对Quantity执行聚合(求和、取均值、取最新值等)后再构建映射字典,避免映射值异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:30:03