Pandas 带键的 cumsum
Pandas cumsum with keys
我有两个 DataFrame(第一个,第二个):
index_first
value_1
value_2
0
100
1
1
200
2
2
300
3
index_second
value_1
value_2
0
50
10
1
100
20
2
150
30
接下来我用键连接两个 DataFrame:
z = pd.concat([first, second],keys=['x','y'])
我的目标是在考虑键的情况下计算 z 中 value_1
和 value_2
的累加和。
所以最终的 DataFrame 应该是这样的:
index_z
value_1
value_2
x,0
100
1
x,1
300
3
x,2
600
6
y,0
50
10
y,1
150
30
y,2
300
60
使用 GroupBy.cumsum
由 concat
的 key
创建的第一个级别:
df = z.groupby(level=0).cumsum()
print (df)
value_1 value_2
index_first
x 0 100 1
1 300 3
2 600 6
y 0 50 10
1 150 30
2 300 60
我有两个 DataFrame(第一个,第二个):
index_first | value_1 | value_2 |
---|---|---|
0 | 100 | 1 |
1 | 200 | 2 |
2 | 300 | 3 |
index_second | value_1 | value_2 |
---|---|---|
0 | 50 | 10 |
1 | 100 | 20 |
2 | 150 | 30 |
接下来我用键连接两个 DataFrame:
z = pd.concat([first, second],keys=['x','y'])
我的目标是在考虑键的情况下计算 z 中 value_1
和 value_2
的累加和。
所以最终的 DataFrame 应该是这样的:
index_z | value_1 | value_2 |
---|---|---|
x,0 | 100 | 1 |
x,1 | 300 | 3 |
x,2 | 600 | 6 |
y,0 | 50 | 10 |
y,1 | 150 | 30 |
y,2 | 300 | 60 |
使用 GroupBy.cumsum
由 concat
的 key
创建的第一个级别:
df = z.groupby(level=0).cumsum()
print (df)
value_1 value_2
index_first
x 0 100 1
1 300 3
2 600 6
y 0 50 10
1 150 30
2 300 60