gpt4 book ai didi

python - Pandas DataFrame groupby 具有多索引的时间戳频率

转载 作者:行者123 更新时间:2023-12-01 04:01:14 25 4
gpt4 key购买 nike

我有一个带有 MultiIndex(时间戳、dgg)的 DataFrame,如下所示:

In [1]: df.head()
Out[1]:
smos_vwc map_vwc
timestamp dgg
2015-03-31 233862 0.195203 0.315370
233348 0.321409 0.271887
233349 0.272508 0.275955
233350 0.249663 0.279324
232833 0.269949 0.266547

时间戳持续很多天。我想按月份和 dgg 对这些数据进行分组,但我不确定有什么好方法。如果我使用具有正常索引的 DataFrame 按月进行分组,我可以执行 df.groupby(df.index.month) (或使用 pd.TimeGrouper),但是MultiIndex 没有 DatetimeIndex 属性。

只是把它扔在那里,如果我不想保留 dgg,我可以df.reset_index(level='dgg').groupby(df.reset_index(level='dgg') .index.month),但随后我失去了 dgg 分组。

最佳答案

假设您想按月分组,而不是按年月分组(例如,2012-03 和 2013-03 位于同一组),您可以这样做:

  • 重置索引,使 dggtimestamp 成为常规列
  • 将计算月份放入其自己的列中,
  • 然后按dgg月份分组。

看起来像这样:

result = (
df.reset_index()
.assign(month=lambda x: x['timestamp'].dt.month)
.grouby(by=['dgg', 'month'])
.<apply/agg/transform/filter>(...)
)

关于python - Pandas DataFrame groupby 具有多索引的时间戳频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36460639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com