在Pandas 中應用前一行值的計算
在Pandas 中,在資料操作期間遇到將前一行值合併到計算中的挑戰並不困難罕見。其中一個場景涉及在使用 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」列。對於第一行,「C」源自於「D」。對於後續行,「C」的計算方法是將前一行的「C」值乘以目前行的「A」值並加上「B」值。
Approach
為了實現這一點,我們在 apply() 函數中結合使用初始化和迭代。
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
<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>
結果
此方法將有效地使用所需的計算值填充「C」欄位:
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 2015-02-03 10 100 3000 250
以上是如何使用「apply()」函數根據 Pandas 中的前一行值計算列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!