gpt4 book ai didi

python - Pandas 使用日期索引将每小时数据分组为每日总和

转载 作者:太空狗 更新时间:2023-10-30 00:59:21 26 4
gpt4 key购买 nike

我正在编写一个代码,该代码获取一个月的每小时数据并将其分组为 24 小时总和。我的问题是我希望索引读取日期/年份,而我只得到 1-30 的索引。

我使用的代码是

df = df.iloc[:,16:27].groupby([lambda x: x.day]).sum()

我得到的输出示例

DateTime     data
1 1772.031568
2 19884.42243
3 28696.72159
4 24906.20355
5 9059.120325

我想要的输出示例

DateTime     data
1/1/2017 1772.031568
1/2/2017 19884.42243
1/3/2017 28696.72159
1/4/2017 24906.20355
1/5/2017 9059.120325

最佳答案

这是一个老问题,但我不认为在这种特殊情况下公认的解决方案是最好的。您想要完成的是对时间序列数据进行下采样,Pandas 具有内置的功能,称为 resample()。 .对于您的示例,您将执行以下操作:

df = df.iloc[:,16:27].resample('D').sum()

或者如果日期时间列不是索引

df = df.iloc[:,16:27].resample('D', on='datetime_column_name').sum()

与接受的答案相比,这样做(至少)有 2 个好处:

  1. resample可以上采样也可以下采样,groupby()只能下采样
  2. 不需要 lambda、列表理解或日期格式化函数。

有关更多信息和示例,请参阅此处的文档:resample()

关于python - Pandas 使用日期索引将每小时数据分组为每日总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630293/

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