数据框按索引分组

时间:2020-07-30 11:15:06

标签: pandas dataframe datetime indexing group-by

示例数据框:

              A
date          
2010-01-01    1
2010-01-02    2
2010-02-01    3
2010-02-02    4
2010-03-01    5
2010-03-02    6

我想返回按月分组的另一个数据框,所以我已经完成了:

month = df.groupby(df.index.to_period('M')).first()

# outcome

           A
date          
2010-01    1
2010-02    3
2010-03    5

如您所见,我实现了我的意图,但我仅获得每个月的第一个值。我想要的结果应该是。

           A
date          
2010-01    1
2010-01    2    
2010-02    3
2010-02    4
2010-03    5
2010-03    6

如果我这样做:

month = df.groupby(df.index.to_period('M'))

# without **.first()**

我什么也没得到。

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用pd.DataFrame.to_period

首先,确保您的索引为DateTimeIndex:

df.index = pd.to_datetime(df.index)
df.to_period('M')

输出:

         A
date      
2010-01  1
2010-01  2
2010-02  3
2010-02  4
2010-03  5
2010-03  6