[英]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.