向数据框中的列添加一个值:Python

2024-09-28 15:31:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据

   proid  sku  qty 
0  p009  SKPK  0.0  
1  p009  SKKP  2.0  
2  p008  SKPK  0.0  
3  p008  SKC1  4.0  
4  p008  SKKP  0.0  

在“数量”列中,我想根据“sku”中的值为“数量”添加值。值如下所示

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

想做点像

if df.sku == 'SKKP' df.qty += starterkit['SKKP']

结果数据帧应为

   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 

Tags: 数据df数量ifqtystarterkitskuproid
2条回答

您可以使用^{}

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

这是矢量化计算的一个例子。使用pandas的一个主要好处是能够执行这样的计算,而不必求助于Python级别的循环

使用^{}

starterkit = {"SKKP":4,'SKP1':3,'SKP1':3,'SKPK':1,'SKC1':1 }
df.qty += df.sku.map(starterkit)
print (df)
  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

相关问题 更多 >