在 pandas 中,apply() 函數通常用於將函數應用於 DataFrame 的每一行。然而,當也使用相同的 apply() 方法計算前一行值時,就會出現挑戰。
考慮以下情況DataFrame:
Index_Date | A | B | C | ]D |
---|---|---|---|---|
2015-01-31 | 10 | 10 | NaN | 10 |
2015-02-01 | 2015-02-01 | 3 | ||
22 | 2015-02-02 | 10 | 2015-02-02 | |
60 | NaN | 2 80 | 2015-02-03 |
df.loc[0, 'C'] = df.loc[0, 'D']
這目標是導出C 列:df.loc[0, 'C'] = df.loc[0, 'D']
對於2015-01-31,將其設定為D 的值。 對於後續行,將 C 的前一行值乘以A 的目前行值並將其加到 B 的目前行值。 要達成此目的,我們先設定2015-01-31 的C 初始值: | df.loc[0 , 'C'] = df.loc[0, 'D'] | 然後,我們迭代剩餘的行並使用所需的計算更新C 值: | for i in range(1,長度(df)): df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B'] | |
---|---|---|---|---|
Index_Date | A | B | C | |
2015-01-31 | 10 | 10 | ||
1 0 | 2015-02-01 | 2 | 3 |
]
10
60
&&&] |
---|
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3