首頁 > 後端開發 > Python教學 > 如何使用「apply()」函數根據 Pandas 中的前一行值計算列?

如何使用「apply()」函數根據 Pandas 中的前一行值計算列?

Mary-Kate Olsen
發布: 2024-10-29 20:58:29
原創
744 人瀏覽過

How to Calculate a Column Based on Previous Row Values in Pandas Using the `apply()` Function?

在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() 函數中結合使用初始化和迭代。

  1. 使用「D」中的值初始化第一行的「C」值.
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
登入後複製
  1. 迭代剩餘行並計算'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>
登入後複製

結果

此方法將有效地使用所需的計算值填充「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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板