0

在此处输入图像描述

请看上面的图片链接,一旦你看到那张图片就会更容易理解我的问题。抱歉,我不能直接在此框中张贴图片。

从 DI 列想要创建一个 E 列,如图所示。我已经花了几个小时,但无法弄清楚。谢谢

4

1 回答 1

0

假设您可以使用 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
于 2020-06-03T07:48:07.817 回答