我在pandas数据框中有一些数据,这些数据在几个小时的过程中具有每秒级的条目。条目按日期时间格式索引为TIMESTAMP
。我想将每分钟内的所有数据分组,并进行一些计算和操作。也就是说,我想取09:00:00到09:00:59之间的所有数据,并报告这一分钟发生的一些事情。然后,我想从09:01:00到09:01:59进行相同的计算和操作,以此类推,直到我的数据集结束。
我一直在摆弄groupby()
和.resample()
,但到目前为止我还没有成功。我可以想到一种非常不优雅的方法,用一系列for循环和if语句来实现,但我想知道这里是否有更简单的方法。
您没有提供任何数据或代码,所以我只是编一些。你也没有指定你想要做什么计算,所以我只取平均值:
>>> import numpy as np
>>> import pandas as pd
>>> dates = pd.date_range("1/1/2020 00:00:00", "1/1/2020 03:00:00", freq="S")
>>> values = np.random.random(len(dates))
>>> df = pd.DataFrame({"dates": dates, "values": values})
>>> df.resample("1Min", on="dates").mean().reset_index()
dates values
0 2020-01-01 00:00:00 0.486985
1 2020-01-01 00:01:00 0.454880
2 2020-01-01 00:02:00 0.467397
3 2020-01-01 00:03:00 0.543838
4 2020-01-01 00:04:00 0.502764
.. ... ...
236 2020-01-01 03:56:00 0.478224
237 2020-01-01 03:57:00 0.460435
238 2020-01-01 03:58:00 0.508211
239 2020-01-01 03:59:00 0.415030
240 2020-01-01 04:00:00 0.050993
[241 rows x 2 columns]