按索引分组的数据框
Posted
技术标签:
【中文标题】按索引分组的数据框【英文标题】:Dataframe group by index 【发布时间】:2020-11-20 03:04:35 【问题描述】:示例数据框:
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】:你可以使用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
【讨论】:
太好了,你让我开心:)。我有最后一个问题:如果我想通过选择前两个月并返回一个 df 来执行 for 循环,然后选择接下来的两个月(删除第一个月)并返回另一个 df,直到数据结束……可行吗?关于如何实现它的任何建议?谢谢! 实际上,@LouiseLop 这是一个单独的问题,应该作为一个新问题提交。我建议您使用“for loop”请求创建新问题。 谢谢,我在这里把这个问题单独提出来了:***.com/questions/63173509/… @LouiseLop 对不起。我在那里度假了几天。我在上面的帖子中回答了你的问题。以上是关于按索引分组的数据框的主要内容,如果未能解决你的问题,请参考以下文章
pandas DataFrame中按日期(在索引中)的加权平均分组(每列不同的操作)
将函数应用于 Dask 中的分组数据框:如何将分组的数据框指定为函数中的参数?