pandas 如何将5分钟间隔数据重采样为每小时数据?

pn9klfpd  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(116)

我有以下数据集
| 日期|时间|温度_C|风速_kmph|降水速率_mm|压力_hPa|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 2017年1月1日|23点|七点七二|一点六一|0| 1023.37|
| 2017年1月1日|23:05:00|七点六一|0|零点五一|1023.71|
| 2017年1月1日|23:10:00|七点七二|一点六一|0| 1023.37|
| 2017年1月1日|23:15:00|七点六一|0| 0| 1023.71|
| 2017年1月1日|23:20:00|七点七二|一点六一|零点二五|1023.37|
| 2017年1月1日|23:25:00|七点六一|0| 0| 1023.71|
| 2017年1月1日|23点半|七点七二|一点六一|零点五一|1023.37|
| 2017年1月1日|23点35分|七点六一|0| 0| 1023.71|
| 2017年1月1日|23点40分|七点七二|一点六一|零点二五|1023.37|
| 2017年1月1日|23点45分|七点六一|0| 0| 1023.71|
| 2017年1月1日|23:50:00|七点七二|一点六一|0| 1023.37|
| 2017年1月1日|23点55分|七点六一|0| 0| 1023.71|
| 2017年1月2日|00:03:00|七点七二|一点六一|零点五一|1023.37|
| 2017年1月2日|00:08:00|七点六一|0| 0| 1023.71|
| 2017年1月2日|00:13:00|七点七二|一点六一|0| 1023.37|
| 2017年1月2日|00:18:00|七点六一|0|零点二五|1023.71|
正如你所看到的,我有时间的问题,因为它们不是完全有规律的。2017年2月1日00:00:00,记录仪出现问题,因此没有数据,但一旦问题得到解决,记录仪从当天00:00:03开始记录。类似地,这只是来自大数据集的小数据集。另一个问题是有时数据集的间隔超过5分钟(例如,记录器在03/01/2017 00:05:00记录,然后记录器在00:17:00记录,有时记录器在同一天不固定)如何有效地重新采样数据?
我从来没有研究过这样的数据,所以我甚至不知道从什么开始

hsvhsicv

hsvhsicv1#

设置一个datetime索引并使用resample

(df.set_index(pd.to_datetime(df['Date']+df['Time'], format='%m/%d/%Y%H:%M:%S'))
   .drop(columns=['Date', 'Time'])
   .resample('H').mean()
)
  • 注意,这里使用的是平均值,但您可以按照自己的方式进行聚合。*

输出:

Temperature_C  Wind speed_kmph  Precipitation Rate_mm  Pressure_hPa
2017-01-01 23:00:00          7.665            0.805               0.126667       1023.54
2017-01-02 00:00:00          7.665            0.805               0.190000       1023.54

相关问题