在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() 函數中結合使用初始化和迭代。
df.loc[0, 'C'] = df.loc[0, 'D']
for i in range(1, len(df)):
df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B']
結果
此方法將有效地使用所需的計算值填充「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
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3