我有以下資料框:

我想驗證任何日期的單元格值是否為 0。如果是,我想通過將前一個單元格上的值乘以適當的乘數來替換單元格的值。
例如,第 14 天 = 0,我想將第 7 天乘以 Mul 14 并將新值存盤在第 14 天。以此類推整個資料幀。
我已經嘗試過這段代碼,但它不起作用:
if df['day 30'] == 0.00:
df['day 30'] = df['day 14']*df['Mul 30']
這是我的預期輸出:

謝謝!
uj5u.com熱心網友回復:
這是一個帶有小示例的解決方案:
import pandas as pd
import numpy as np
df=pd.DataFrame([[0.8,0.9,0.7,2,6],[0.6,0,0,2,3],[0.2,0,0,4,2]],columns=["Day 7","Day 14","Day 30","Mul 14","Mul 30"])
print(df)
df["Day 14"]=np.where(df["Day 14"]==0,df["Day 7"]*df["Mul 14"],df["Day 14"])
df["Day 30"]=np.where(df["Day 30"]==0,df["Day 14"]*df["Mul 30"],df["Day 30"])
print(df)
如果你想要 ypu 可以迭代 [7,14,10,90] 而不是撰寫單獨的行。
上述代碼的結果:
Day 7 Day 14 Day 30 Mul 14 Mul 30
0 0.8 0.9 0.7 2 6
1 0.6 0.0 0.0 2 3
2 0.2 0.0 0.0 4 2
Day 7 Day 14 Day 30 Mul 14 Mul 30
0 0.8 0.9 0.7 2 6
1 0.6 1.2 3.6 2 3
2 0.2 0.8 1.6 4 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467222.html
標籤:Python python-3.x 熊猫 数据框
