在 pandas 中,apply() 函數通常用於將函數應用於 DataFrame 的每一行。然而,當也使用相同的 apply() 方法計算前一行值時,就會出現挑戰。
考慮以下 DataFrame:
Index_Date | A | B | C | D |
---|---|---|---|---|
2015-01-31 | 10 | 10 | NaN | 10 |
2015-02-01 | 2 | 3 | NaN | 22 |
2015-02-02 | 10 | 60 | NaN | 280 |
2015-02-03 | 10 | 100 | NaN | 250 |
目標是派生欄位 C:
為此,我們先設定2015-01-31 的C 初始值:
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
然後,我們迭代剩餘的行並使用所需的計算更新C 值:
<code class="python">for i in range(1, len(df)): df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']</code>
這些操作後的最終DataFrame:
Index_Date | A | B | C | D |
---|---|---|---|---|
2015-01-31 | 10 | 10 | 10 | 10 |
2015-02-01 | 2 | 3 | 23 | 22 |
2015-02-02 | 10 | 60 | 290 | 280 |
以上是如何透過「apply()」使用前一行值計算 DataFrame 中的欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!