我有一个数据帧有两个级别的列索引。我需要在两个键(列)上具有不同的聚合函数。但是,我收到了我的代码错误。我如何聚合多级数据框中的多列。聚合在多级索引
dic1 = {('count', 'N.A.'): {Period('1993-01', 'M'): 0,
Period('1993-02', 'M'): 0,
Period('1993-03', 'M'): 0},
('count', 'No'): {Period('1993-01', 'M'): 1,
Period('1993-02', 'M'): 1,
Period('1993-03', 'M'): 1},
('count', 'Yes'): {Period('1993-01', 'M'): 0,
Period('1993-02', 'M'): 0,
Period('1993-03', 'M'): 0},
('sum', 'N.A.'): {Period('1993-01', 'M'): nan,
Period('1993-02', 'M'): nan,
Period('1993-03', 'M'): nan},
('sum', 'No'): {Period('1993-01', 'M'): 6.5820000000000007,
Period('1993-02', 'M'): 131.1865,
Period('1993-03', 'M'): 133.31049999999999},
('sum', 'Yes'): {Period('1993-01', 'M'): nan,
Period('1993-02', 'M'): nan,
Period('1993-03', 'M'): nan}}
df1 = pd.DataFrame(dic1)
df1.to_timestamp(how='end').groupby(pd.TimeGrouper('A')).agg(
{'count':['max', 'min', 'median', 'last'] ,
'sum':['mean', 'max' , 'last']})
error: KeyError: 'sum'
谢谢! 'reset_index(-1)'是让熊猫重复日期还是有其他功能? – Roo
['reset_index']](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html)移动索引(或者在MultiIndex的情况下,一个级别或级别的MultiIndex)到DataFrame的列。 'reset_index(-1)'将MultiIndex的最后一级移动到一列。在这种情况下,它会将'YN'索引级别移动到同名的新列中。当最后一级没有名字时,'reset_index(-1)'很有用。在这里,我应该使用'reset_index('YN')',因为这更具描述性。 – unutbu
[stack](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.stack.html)将列索引(或列MultiIndex的级别)移动到行索引。在一起,'stack'后跟'reset_index'将列索引的级别移动到新的DataFrame列中。 – unutbu