【发布时间】:2016-11-07 19:18:47
【问题描述】:
我有以 CSV 格式提供给我的 AWS EC2 实例 CPU 利用率和其他指标数据,如下所示:
Date,Time,CPU_Utilization,Unit
2016-10-17,09:25:00,22.5,Percent
2016-10-17,09:30:00,6.534,Percent
2016-10-17,09:35:00,19.256,Percent
2016-10-17,09:40:00,43.032,Percent
2016-10-17,09:45:00,58.954,Percent
2016-10-17,09:50:00,56.628,Percent
2016-10-17,09:55:00,25.866,Percent
2016-10-17,10:00:00,17.742,Percent
2016-10-17,10:05:00,34.22,Percent
2016-10-17,10:10:00,26.07,Percent
2016-10-17,10:15:00,20.066,Percent
2016-10-17,10:20:00,15.466,Percent
2016-10-17,10:25:00,16.2,Percent
2016-10-17,10:30:00,14.27,Percent
2016-10-17,10:35:00,5.666,Percent
2016-10-17,10:40:00,4.534,Percent
2016-10-17,10:45:00,4.6,Percent
2016-10-17,10:50:00,4.266,Percent
2016-10-17,10:55:00,4.2,Percent
2016-10-17,11:00:00,4.334,Percent
2016-10-17,11:05:00,4.334,Percent
2016-10-17,11:10:00,4.532,Percent
2016-10-17,11:15:00,4.266,Percent
2016-10-17,11:20:00,4.266,Percent
2016-10-17,11:25:00,4.334,Percent
显然,这是每 5 分钟报告一次。我无权访问 aws-cli。我需要处理这个并每 15 分钟报告一次平均利用率以进行可视化。也就是说,对于每个小时,我需要找到前 15 分钟、接下来的 15 分钟等值的平均值。因此,我将每小时报告 4 个值。
示例输出为:
Date,Time,CPU_Utilization,Unit
2016-10-17,09:30:00,14.517,Percent
2016-10-17,09:45:00,40.414,Percent
2016-10-17,10:00:00,33.412,Percent
2016-10-17,10:15:00,26.785,Percent
...
一种方法是读取整个文件(有 10000+ 行),然后对于每个日期,找到属于一个 15 分钟窗口的值,计算它们的平均值并重复所有值。这似乎不是最好和最有效的方法。有更好的方法吗?谢谢。
【问题讨论】:
-
文件真的太大而无法完全读取吗? 10000 行在
numpy数组中读取并在那里处理它听起来并不大。我想这实际上应该比遍历文件并逐行读取更好。 -
@jotasi 不,它并不大。甚至我认为将整个文件读取为 Numpy 数组的方法。那我该如何进行呢?然后我应该阅读属于特定日期的行然后继续吗?任何帮助将不胜感激。
-
Pandas 就是为做这种事而生的。
标签: python amazon-ec2 time-series