【发布时间】:2013-04-19 02:56:47
【问题描述】:
我正在处理一个包含 3 列的 csv 文件,如下所示:
timeStamp, value, label
15:22:57, 849, CPU pid=26298:percent
15:22:57, 461000, JMX MB
15:22:58, 28683, Disks I/O
15:22:58, 3369078, Memory pid=26298:unit=mb:resident
15:22:58, 0, JMX 31690:gc-time
15:22:58, 0, CPU pid=26298:percent
15:22:58, 503000, JMX MB
label 列包含不同的值(比如总共 5 个),其中包括空格、冒号和其他特殊字符。
我想要实现的是针对每个指标绘制时间(在同一个图上或在不同的图上)。我可以用matplotlib 做到这一点,但我首先需要根据“标签”对[timeStamps, value] 对进行分组。
我查看了csv.DictReader 以获取标签,并查看itertools.groupby 按“标签”分组,但我正在努力以适当的“pythonic”方式做到这一点。
有什么建议吗?
【问题讨论】:
-
您的示例的预期输出是什么?
-
好吧,鉴于我的输入样本都是混合的,我可能不得不将每个 [标签] 的 [时间] 和 [值] 分开。我最初的方法是读取标签,然后读取每一行并根据标签存储每个 [time,value] 对。但这似乎是一种非常低效的方法,这就是我想研究字典和迭代器的原因。