【发布时间】:2019-07-30 04:28:29
【问题描述】:
我有一个大数据集:
Time, Value
01.01.2018 00:00:00.000, 5.1398
01.01.2018 00:01:00.000, 5.1298
01.01.2018 00:02:00.000, 5.1438
01.01.2018 00:03:00.000, 5.1228
01.01.2018 00:04:00.000, 5.1168
.... , ,,,,
31.12.2018 23:59:59.000, 6.3498
数据是从一年中的first 到一年中的last 的minute 数据
我想使用Pandas 求每 5 天的平均值。例如:
01.01.2018 00:00:00.000 到 05.01.2018 23:59:59.000 的平均值为 05.01.2018
对于06.01.2018,下一个平均值将从02.01.2018 00:00:00.000 到6.01.2018 23:59:59.000
对于07.01.2018,下一个平均值将从03.01.2018 00:00:00.000 到7.01.2018 23:59:59.000
等等……
对于给定的一天,有 24 小时 * 60 分钟 = 1440 个数据点。所以我需要得到 1440 个数据点 * 5 天 = 7200 个数据点的平均值。
最终的 DataFrame 将如下所示:
Time, Value
05.01.2018, 5.1398
06.01.2018, 5.1298
07.01.2018, 5.1438
.... , ,,,,
31.12.2018, 6.3498
底线是计算今天到过去5天的数据平均值,平均值如上图所示。
我尝试遍历 Python 循环,但我想要的东西比 Pandas 做得更好。
【问题讨论】:
-
rolling(5).mean()? -
rolling(5).mean()给出了有希望的输出。我还需要在 DataFrame 中添加 time avg,就像上面的最终 DataFrame 输出一样。 -
@QuangHoang:为了清楚起见,我更新了问题。
标签: python python-3.x pandas