![](/img/trans.png)
[英]Aggregate to 15min based timestamp to hour and find sum, avg and max for multiple columns in pandas
[英]Aggregate 15 min data to 1 hour data based on another column in python?
我使用 pandas 获得了以下数据框作为示例:
时间戳 | 电脑编号 | 内存使用百分比 |
---|---|---|
05-07-2022 08:00:00 | 1 | 25 |
05-07-2022 08:00:00 | 2 | 56 |
05-07-2022 08:00:00 | 3 | 34 |
05-07-2022 08:15:00 | 1 | 23 |
05-07-2022 08:15:00 | 2 | 63 |
05-07-2022 08:15:00 | 3 | 23 |
05-07-2022 08:30:00 | 1 | 26 |
05-07-2022 08:30:00 | 2 | 56 |
05-07-2022 08:30:00 | 3 | 32 |
05-07-2022 08:45:00 | 1 | 23 |
05-07-2022 08:45:00 | 2 | 15 |
05-07-2022 08:45:00 | 3 | 86 |
05-07-2022 09:00:00 | 1 | 43 |
05-07-2022 09:00:00 | 2 | 26 |
05-07-2022 09:00:00 | 3 | 21 |
我想将时间从 15 分钟间隔汇总到 1 小时。 但是我在同一个数据集中有不同的计算机编号。 首先,我如何将时间汇总到 1 小时,其次我如何为每台计算机单独完成?
谢谢!
您可以从时间戳中提取hour
值,然后按groupby
-
df['hour'] = pd.to_datetime(df['Timestamp']).dt.hour
df.groupby(['hour', 'Computer no.']).agg('mean').reset_index()
输出
hour Computer no. Memory Usage in %
0 8 1 24.25
1 8 2 47.50
2 8 3 43.75
3 9 1 43.00
4 9 2 26.00
这应该有效:
df = df.set_index('Timestamp')
df1 = df[df['Computer no.']==1].resample('1H').mean()
df2 = df[df['Computer no.']==2].resample('1H').mean()
df3 = df[df['Computer no.']==3].resample('1H').mean()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.