我在下面的代码中有一个DataFrame。
import pandas as pd
df = pd.DataFrame({
'asset_id': ['A1','A1', 'B1', 'B1', 'B1'],
'dt': ['2015-10', '2015-11', '2015-11', '2015-12', '2016-01'],
'dep': [100, 100, 200, 200, 150]
})
df['accum'] = df.groupby(by=['asset_id'])['dep'].cumsum()
print(df)
asset_id dt dep accum
0 A1 2015-10 100 100
1 A1 2015-11 100 200
2 B1 2015-11 200 200
3 B1 2015-12 200 400
4 B1 2016-01 150 550
如果我做数据透视表,则会得到如下结果:
print(df.pivot_table(values=['dep','accum'],columns=['dt'],index=['asset_id']))
accum dep
dt 2015-10 2015-11 2015-12 2016-01 2015-10 2015-11 2015-12 2016-01
asset_id
A1 100.0 200.0 NaN NaN 100.0 100.0 NaN NaN
B1 NaN 200.0 400.0 550.0 NaN 200.0 200.0 150.0
但是我怎么能得到这样的结果:
dt 2015-10 2015-11 2015-12 2016-01
accum dep accum dep accum dep accum dep
asset_id
A1 100 100 200 100 NaN NaN NaN NaN
A2 NaN NaN 200 200 400 200 550 150
这是我能描述的最好的问题。一些帮助会有所帮助。 这是小提琴链接https://pyfiddle.io/fiddle/d1eeab6a-79cb-458e-9c0f-867842a44ffb/?i=true