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

Python实现:基于SKU批量为DataFrame的Qty列添加对应值

搞定Pandas按SKU批量更新Qty列的需求

嘿,我来帮你解决这个批量更新DataFrame列的问题!

先明确你的需求

你手头有这样一个初始DataFrame:

import pandas as pd

df = pd.DataFrame({
    'proid': ['p009', 'p009', 'p008', 'p008', 'p008'],
    'sku': ['SKPK', 'SKKP', 'SKPK', 'SKC1', 'SKKP'],
    'qty': [0.0, 2.0, 0.0, 4.0, 0.0]
})

还有一个定义了SKU对应增量的字典:

starterkit = {"SKKP":4,'SKP1':3,'SKPK':1,'SKC1':1 }

你想要实现的是:根据sku列的值,把starterkit里对应的数值加到qty列上,最终得到你期望的结果表。

最简单高效的实现方式

不用写一堆if判断或者循环,Pandas自带的map()方法就能轻松搞定:

# 把sku对应的增量映射出来,直接加到qty列上
df['qty'] += df['sku'].map(starterkit)

看看运行后的结果

执行完上面的代码,你就会得到完全符合预期的DataFrame:

proid   sku  qty
0  p009  SKPK  1.0
1  p009  SKKP  6.0
2  p008  SKPK  1.0
3  p008  SKC1  5.0
4  p008  SKKP  4.0

额外小提示

如果你的DataFrame里有一些sku不在starterkit字典里,map()会返回NaN,这时候可以用fillna(0)来避免qty列出现空值,代码改成这样就行:

df['qty'] += df['sku'].map(starterkit).fillna(0)

这样那些找不到对应增量的sku,qty就保持原来的值不变啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:31:36