我有一个名为performanceData
的数据框,如下所示:
id settle_price settle_price_acc pos trade \
date
2016-01-04 BBG.XTKS.9716.S 14.096973 14.096973 8100.0 -1700.0
2016-01-04 BBG.XTKS.9065.S 4.460498 4.460498 4000.0 20000.0
2016-01-04 BBG.XTKS.7966.S 17.599029 17.599029 -500.0 27700.0
2016-01-04 BBG.XTKS.3774.S 19.514999 19.514999 0.0 200.0
2016-01-04 BBG.XTKS.5110.S 15.143828 15.143828 -200.0 0.0
nominal_posn_size abs_nominal_posn_size abs_nominal_trade_size
date
2016-01-04 114185.481138 114185.481138 23964.854066
2016-01-04 17841.990960 17841.990960 89209.954800
2016-01-04 -8799.514730 8799.514730 487493.116042
2016-01-04 0.000000 0.000000 3902.999806
2016-01-04 -3028.765682 3028.765682 0.000000
数据框很大,并且有过去10年的日期(以上是头部)。我正在尝试在日期创建一个数据透视表(例如,为每个日期汇总所有abs_nominal_trade_size值。但是我得到一个关键错误
KeyError: 'date'
当我尝试使用以下代码转动日期时:
e = performanceData.pivot_table(index='date', columns=['abs_nominal_trade_size','abs_nominal_posn_size','nominal_posn_size'], values='Value')
答案 0 :(得分:1)
让我们试试:
performanceData.reset_index()\
.pivot_table(index='date',
values=['abs_nominal_trade_size',
'abs_nominal_posn_size',
'nominal_posn_size'],
aggfunc='sum')
输出:
abs_nominal_posn_size abs_nominal_trade_size nominal_posn_size
date
2016-01-04 143855.75251 604570.924714 120199.191686