向数据框中的列添加一个值,一次添加所有行:Python
我有以下数据来自df向数据框中的列添加一个值,一次添加所有行:Python,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据来自df 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.sk
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
您可以使用:
这是矢量化计算的一个示例。使用pandas的一个主要好处是能够在不使用Python级循环的情况下执行此类计算。使用:
但初学者工具包的值基于数据框中的另一列值
df['qty'] += df['sku'].map(starterkit)
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