在Python中,有没有办法根据前一行计算来计算一行?

问题描述 投票:0回答:1

我有一个如下表,正在计算“Rollover”(之前的 D 值 + B - C)。 我当前正在使用: df['Rollover'] = (df['Rollover'].shift(1) + df['B'] - df['C']) 但在第二行之后,该值不采取之前的“Rollover”值。

enter image description here

python pandas dataframe
1个回答
0
投票

IIUC,对列

B
C
求和,然后使用
cumsum
:

df["Rollover"] = df["B"].add(df["C"]).cumsum()
           A  B  C  D  E  Rollover
0 2024-01-01  1  1  1  1         2
1 2024-01-02  2  1  1  1         5
2 2024-01-03  2  2  2  2         9
3 2024-01-04  1  1  1  1        11
4 2024-01-05  4  4  4  4        19
5 2024-01-06  1  1  1  1        21
6 2024-01-07  4  4  4  4        29
7 2024-01-08  2  1  1  1        32
8 2024-01-09  4  4  4  4        40
© www.soinside.com 2019 - 2024. All rights reserved.