将5分钟的数据四舍五入到每小时复杂的数据

时间:2018-01-09 05:09:14

标签: python pandas datetime

我的数据如下:

Timestamp   Outbound Utilization (%)
11/22/2017 9:55 12.356965
11/22/2017 10:00    14.4424725
11/22/2017 10:05    19.44614625
11/22/2017 10:10    49.3823
11/22/2017 10:15    51.21698
11/22/2017 10:20    50.67409188
11/22/2017 10:25    14.89324375
11/22/2017 10:30    27.1916175
11/22/2017 10:35    19.8268025
11/22/2017 10:40    9.996577813
11/22/2017 10:45    7.929271875
11/22/2017 10:50    22.7705
11/22/2017 10:55    32.611105
11/22/2017 11:00    9.761414375
11/22/2017 11:05    13.10104375

我的日期列应该向上舍入到每小时数据,但它应该看起来像10:05,11:05,这意味着应该累积9:05到10:05的所有数据并显示为9:05,10 :05到11:05数据应该显示为10:05,这样的事情,楼层/圆形功能是否有效,或者我们是否需要实现我们自己的逻辑

1 个答案:

答案 0 :(得分:1)

首先,将Timestamp转换为datetime -

df['Timestamp'] = pd.to_datetime(df['Timestamp'], errors='coerce')

现在,将Timestamp设置为索引并使用resample参数调用base,该参数指定从每小时开始的偏移量 -

df.set_index('Timestamp').resample('60min', base=5).sum()

                     Outbound Utilization (%)
Timestamp                                    
2017-11-22 09:05:00                 26.799437
2017-11-22 10:05:00                315.700051
2017-11-22 11:05:00                 13.101044

如果您要查找平均值,请拨打mean而不是sum -

df.set_index('Timestamp').resample('60min', base=5).mean()

                     Outbound Utilization (%)
Timestamp                                    
2017-11-22 09:05:00                 13.399719
2017-11-22 10:05:00                 26.308338
2017-11-22 11:05:00                 13.101044

如果要重置索引,可以在结果上添加reset_index