我正在处理一个包含 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
Run Code Online (Sandbox Code Playgroud)
该label列包含不同的值(比如总共 5 个),其中包括空格、冒号和其他特殊字符。
我想要实现的是针对每个指标绘制时间(在同一个图上或在不同的图上)。我可以用 来做到这一点matplotlib,但我首先需要[timeStamps, value]根据“标签”对这些对进行分组。
我查看了csv.DictReader以获取标签和itertools.groupby按“标签”分组的方法,但我正在努力以适当的“pythonic”方式执行此操作。
有什么建议吗?
我目前正在使用一个名为TableTexCompare的 Windows 实用程序
该工具可以获取 2 个 CSV 文件并进行比较。它的好处是,即使两个文件的记录排序不一样或者字段的位置不一样,它也可以进行比较。
因此,以下 2 个文件将导致成功比较
(文件1.csv)
FirstName,LastName,Age
Mona,Sax,30
Max,Payne,43
Jack,Lupino,50
Run Code Online (Sandbox Code Playgroud)
(文件2.csv)
FirstName,Age,LastName
Max,43,Payne
Jack,50,Lupino
Mona,30,Sax
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是从命令行做同样的事情,只有 1 个区别:我希望仅在一个方向上执行比较,即如果 File2.csv 如下(File1.csv 的子集) ,比较应该通过
(文件2.csv)
FirstName,Age,LastName
Jack,50,Lupino
Run Code Online (Sandbox Code Playgroud)
我并不特别关心它是否采用某种编程语言、专用的 cli 工具或 shell 脚本(例如使用 awk)。我对 Java 和 Groovy 有一些经验,但希望得到一些初步的指导。