简体   繁体   English

Dataframe 条件累计和

[英]Dataframe conditional cumulative sum

I am trying to sum a value column based on 2 categorical columns values.我正在尝试根据 2 个分类列值对值列求和。

dict1 = {'A': {0: 'A0', 1: 'A0', 2: 'A0', 3: 'A0', 4: 'A1', 5: 'A1', 6: 'A1', 7: 'A1', 8: 'A1', 9: 'A1'}, 'B': {0: 'B0', 1: 'B1', 2: 'B2', 3: 'B3', 4: 'B4', 5: 'B5', 6: 'B6', 7: 'B7', 8: 'B8', 9: 'B9'}, 'C': {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}, 'D': {0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19}, 'E': {0: 'E0', 1: 'E1', 2: 'E0', 3: 'E1', 4: 'E0', 5: 'E1', 6: 'E0', 7: 'E1', 8: 'E0', 9: 'E1'}}

df2 = pd.DataFrame(dict1)

I am now trying to get a cumsum of column D based on column A & E, ie A0E0, A0E1, A1E0 & so on should have a cumulative sum like this in column F.我现在正在尝试根据 A 列和 E 列获取 D 列的总和,即cumsum 、A0E1、A1E0 等应该在 F 列中具有这样的累积总和。

    A   B   C   D   E   F
0   A0  B0  0   10  E0  10.0
1   A0  B1  1   11  E1  11.0
2   A0  B2  2   12  E0  22.0
3   A0  B3  3   13  E1  24.0
4   A1  B4  4   14  E0  14.0
5   A1  B5  5   15  E1  15.0
6   A1  B6  6   16  E0  30.0
7   A1  B7  7   17  E1  32.0
8   A1  B8  8   18  E0  48.0
9   A1  B9  9   19  E1  51.0
df2['F'] = df2.groupby(['A', 'E'])['D'].cumsum()

df2

    A   B   C   D   E   F
0   A0  B0  0   10  E0  10
1   A0  B1  1   11  E1  11
2   A0  B2  2   12  E0  22
3   A0  B3  3   13  E1  24
4   A1  B4  4   14  E0  14
5   A1  B5  5   15  E1  15
6   A1  B6  6   16  E0  30
7   A1  B7  7   17  E1  32
8   A1  B8  8   18  E0  48
9   A1  B9  9   19  E1  51

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM