python - 如果匹配条件,则将值乘以变量,否则乘以另一个变量
问题描述
嗨,为什么这种代码不起作用?以及如何使它与熊猫一起使用?
我只是想对特定产品应用不同的税率,对所有其他产品应用不同的税率。
d = {'Product':['Banana','Orange','Grape'],
'Value':[100,80,30]}
df = pd.DataFrame(data=d)
x = 0.25
y = 0.5
for value in df['Product']:
if value=="Banana":
df['Tax'] = df['Value'] * x
else:
df['Tax'] = df['Value'] * y
解决方案
创建一个蒙版然后应用它
mask = df['Product'].eq('Banana')
df.loc[mask, 'Tax'] = df['Value'] * x
df.loc[~mask, 'Tax'] = df['Value'] * y
或节省几毫秒,我想
df['Tax'] = df['Value'] * y
df.loc[df['Product'].eq('Banana'), 'Tax'] = df['Value'] * x