按所有指数分组pandas multiindex数据帧

时间:2014-04-07 00:03:35

标签: python pandas

我的数据框看起来像

Out[229]: 
                          Value
id            date             
1             1945-11-01    148
              1945-11-02    150
              1945-11-06    132
              1945-11-07    132
              1945-12-06    166
              1945-12-07    179
              1945-12-08    182
              1945-12-09    174
              1945-12-10    159

我正在尝试像

这样的事情
by_month = df.groupby(['id', lambda x: x.month])

首先按ID分组我的数据集,然后按月分组以进行进一步处理,并获得以下内容:

                          Value
id            date             
1             11            148
1             11            150
1             11            132
1             11            132
1             12            166
1             12            179
1             12            182
1             12            174
1             12            159

我不知道为什么我会

KeyError: u'no item named id'

虽然df.index.names输出FrozenList([u'id', u'date'])

任何提示?

1 个答案:

答案 0 :(得分:1)

这不是访问MultiIndex的权利,这应该是正确的:

df.groupby(by=[df.index.get_level_values(0), 
           pd.to_datetime(df.index.get_level_values(1)).month]) 
#omit pd.to_datetime if already done so.