Pandas DataFrame groupby一个带有多索引的时间戳频率

时间:2016-04-06 19:29:17

标签: python pandas

我有一个带有MultiIndex(timestamp,dgg)的DataFrame,如下所示:

pd.TimeGrouper

时间戳持续很多天。我想按月和dgg对这些数据进行分组,但我不确定这是一个好方法。如果我按月使用具有正常索引的DataFrame进行分组,我可以df.reset_index(level='dgg').groupby(df.reset_index(level='dgg').index.month)(或使用{{1}}),但MultiIndex没有DatetimeIndex属性。

只是把它扔到那里,如果我不在乎dgg,我可以{{1}},但后来我失去了dgg分组。

1 个答案:

答案 0 :(得分:2)

假设您想要按月分组,而不是按月分组(例如,2012-03和2013-03属于同一组),您可以这样做:

  • 将您的索引重置为dggtimestamp成为常规列
  • 将计算月份放入其自己的列
  • 然后按dggmonth分组。

看起来像这样:

result = (
    df.reset_index()
      .assign(month=lambda x: x['timestamp'].dt.month)
      .grouby(by=['dgg', 'month'])
      .<apply/agg/transform/filter>(...)
)