请看上面的图片链接,一旦你看到那张图片就会更容易理解我的问题。抱歉,我不能直接在此框中张贴图片。
从 DI 列想要创建一个 E 列,如图所示。我已经花了几个小时,但无法弄清楚。谢谢
假设您可以使用 read_csv 或 read_excel 将 excel 中的数据读取到数据帧 (df) 中,您可以执行以下操作:
df['Expected'] = df.groupby('ID')['Amt'].cumsum()
这就是我测试它的方式(忽略 onboard_mth 列,因为它不需要测试):
'''
yyyy-mm ID Amt
2019-08 0 0
2019-09 0 0
2019-10 0 0
2019-11 0 0
2019-12 0 0
2020-01 0 0
2020-02 0 0
2020-03 0 100
2020-04 0 0
2020-05 0 0
2020-06 0 0
2020-07 0 0
2020-08 0 150
2020-09 0 0
2020-10 0 0
2020-11 0 0
2020-12 0 1000
2021-01 0 10000
2021-02 0 0
2021-03 0 0
2021-04 0 0
2021-05 0 0
2021-06 0 0
2021-07 0 0
2019-01 1 0
2019-02 1 0
2019-03 1 0
2019-04 1 0
2019-05 1 0
2019-06 1 0
'''
import pandas as pd
df = pd.read_clipboard()
df['Expected'] = df.groupby('ID')['Amt'].cumsum()
print(df)
输出:
yyyy-mm ID Amt Expected
0 2019-08 0 0 0
1 2019-09 0 0 0
2 2019-10 0 0 0
3 2019-11 0 0 0
4 2019-12 0 0 0
5 2020-01 0 0 0
6 2020-02 0 0 0
7 2020-03 0 100 100
8 2020-04 0 0 100
9 2020-05 0 0 100
10 2020-06 0 0 100
11 2020-07 0 0 100
12 2020-08 0 150 250
13 2020-09 0 0 250
14 2020-10 0 0 250
15 2020-11 0 0 250
16 2020-12 0 1000 1250
17 2021-01 0 10000 11250
18 2021-02 0 0 11250
19 2021-03 0 0 11250
20 2021-04 0 0 11250
21 2021-05 0 0 11250
22 2021-06 0 0 11250
23 2021-07 0 0 11250
24 2019-01 1 0 0
25 2019-02 1 0 0
26 2019-03 1 0 0
27 2019-04 1 0 0
28 2019-05 1 0 0
29 2019-06 1 0 0