Groupby DatetimeIndex月

时间:2019-10-13 15:38:36

标签: python pandas pandas-groupby python-datetime

我正在尝试按年份划分各个月,但无济于事。例如将2011年至2013年的所有1月进行分组。将所有2月分组。

部分数据集:

Date
2011-01-01    161
2011-02-01    117
2011-03-01    239
2012-01-01    289
2012-02-01    294
2012-03-01    378
2013-01-01    383
2013-02-01    361

预期输出:

Date
2011-01-01    161
2012-01-01    117
2013-01-01    239
2011-02-01    289
2012-02-01    294
2013-02-01    378
2011-03-01    383
2012-03-01    361

尝试:

日期是DatetimeIndex

df = df.groupby([df.index.year],[df.index.month])

输出:TypeError:不可散列的类型:'list'

2 个答案:

答案 0 :(得分:1)

您要传递两个列表,例如,传递一个包含两个元素的列表:

df = df.groupby([df.index.year, df.index.month])

答案 1 :(得分:0)

我们可以尝试argsort

df=df.iloc[df.index.month.argsort()]
df
2011-01-01    161
2012-01-01    289
2013-01-01    383
2011-02-01    117
2012-02-01    294
2013-02-01    361
2011-03-01    239
2012-03-01    378
Name: Date, dtype: int64