pandas groupby导致keyerror

时间:2017-05-11 01:05:08

标签: pandas

我正在尝试将每月时间序列数据转换为季度,然后按季度汇总总和。当我运行以下内容时,我得到一个KeyError:'date'。

abc= abc.set_index('date').to_period('Q').groupby(['origin', 
'date']).agg(sum)

但是,当我重置索引时,如下所示,代码可以正常工作。为什么我需要重置索引才能在origin和date字段中使用groupby?有没有办法在不重置索引的情况下进行分组?

abc= abc.set_index('date').to_period('Q').reset_index().groupby(['origin', 
'date']).agg(sum)

1 个答案:

答案 0 :(得分:5)

因为当你这样做时:

abc= abc.set_index('date').to_period('Q')

你已经改变了约会日期'到索引。

稍后您尝试访问' date'作为一个不再存在的列,因此错误。 reset_index操作恢复日期'作为专栏,它再次有效。

您可以保留' date'通过执行以下操作将列设置为索引作为列:

abc= abc.set_index('date', drop=False).to_period('Q').groupby(['origin', 
'date']).agg(sum)