示例数据框:
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()**
我什么也没得到。
有什么建议吗?
谢谢
答案 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