将5分钟的数据累加到一个复杂的小时基础上

2024-05-21 00:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据如下:

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,类似这样的,楼层/圆形功能是否在这方面起作用,或者我们需要实现自己的逻辑


Tags: 数据功能outbound圆形逻辑utilizationtimestamp小时
1条回答
网友
1楼 · 发布于 2024-05-21 00:56:54

首先,将Timestamp转换为datetime

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

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

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。你知道吗

相关问题 更多 >