[英]Create new column based on values in each row in another column
我想知道是否有人可以帮助我解决以下问题。 我有这个 dataframe:
df = {'Price': [60.50,5.20,7,20.16,73.50,12.55,8.70,6,54.10,89.40,12,55.50,6,120,13.20],
'Discount': [1,1,1,0.5,0.4,1,0.3,0.2,1,1,1,1,1,0.1,0.9]}
df = pd.DataFrame(data=df)
我要做的是遍历df中的每一行,如果折扣金额为1,则用0填充该行的金额。否则,它将根据折扣计算已扣除的金额。 我有以下代码来执行此操作:
for index, row in df.iterrows():
if row['Discount'] == 1:
df['Amount off'] = 0
else:
df['Amount off'] = df['Price']*df['Discount']
但是,一旦我运行它,当折扣为 1 时,它不会产生正确的折扣金额。请问有人能给我一些提示和指示吗?
先感谢您
您的错误是,您在调用例如时正在操作完整的 dataframe
df['Amount off'] = 0
因此,在执行这一行之后,总列是0
。 取决于最后一行,您最终将只有0
或df['Price']*df['Discount']
您可以使用:
df['Amount off']=df['Price']*df['Discount']
df.loc[df['Discount']==1, 'Amount off']=0
df.head()
首先,我计算整个列,然后只更改df['Discount']==1
的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.