首页 > 解决方案 > Numpy:读取具有块结构的长csv文件

问题描述

我正在使用 QMS 分析,并且我有一个带有块结构的 csv 文件(每个块都有一个定义的时间值,并分为 100 个元素和相关的计数值)。

该文件看起来像这样:

"Scan","Cycle","Time","ms",
0001,0001,00:00:00,000000000001,
"amu","c/s"
           1,        5020
           2,        4160
           3,           0
           4,           0
           5,           0
           6,           0
           7,           0
           8,           0
           9,           0
          10,           0
          11,           0
          12,         126
          13,          53
          14,         346
          15,         333
          16,         440
          17,        1020
          18,        4806
          19,        2966
          20,          86
          21,           0
          22,           0
          23,           0
          24,          13
          25,          46
          26,         473
          27,         480
          28,        7293
          29,         420
          30,         213
          31,         286
          32,         686
          33,           0
          34,           6
          35,          13
          36,          13
          37,          20
          38,           6
          39,          40
          40,          86
          41,          66
          42,         193
          43,         106
          44,        1820
          45,          53
          46,         113
          47,           0
          48,           6
          49,           0
          50,           6
          51,           6
          52,          33
          53,          13
          54,          33
          55,          20
          56,          20
          57,           6
          58,          26
          59,           0
          60,           0
          61,           0
          62,           0
          63,          20
          64,           0
          65,           0
          66,           0
          67,           0
          68,           0
          69,           0
          70,           0
          71,           0
          72,           0
          73,           0
          74,           0
          75,           0
          76,           0
          77,           0
          78,           0
          79,           0
          80,           0
          81,           6
          82,           0
          83,           0
          84,           0
          85,           0
          86,           0
          87,           0
          88,           0
          89,           0
          90,           0
          91,           0
          92,           0
          93,           0
          94,           0
          95,           0
          96,           0
          97,           0
          98,           0
          99,           0
         100,           0
"Scan","Cycle","Time","ms",
0001,0002,00:00:16,000000016254,
"amu","c/s"
           1,         940
           2,         273
           3,           0
           4,           0
           5,           0
           6,           0
           7,           0
           8,           0
           9,           0
          10,           0
          11,           0
          12,           0
          13,           0
          14,          13
          15,          33
          16,          33
          17,         166
          18,         666
          19,         926
          20,           0
          21,           0
          22,           0
          23,           0
          24,           0
          25,           0
          26,          20
          27,          40
          28,         420
          29,          40
          30,           6
          31,          46
          32,          26
          33,           0
          34,           0
          35,           0
          36,           0
          37,           0
          38,           0
          39,          20
          40,          13
          41,           0
          42,           6
          43,          26
          44,          73
          45,          13
          46,          13
          47,           0
          48,           0
          49,           0
          50,           0
          51,           0
          52,           0
          53,           0
          54,           0
          55,           0
          56,           6
          57,           0
          58,           0
          59,           0
          60,           0
          61,           0
          62,           0
          63,           0
          64,           0
          65,           0
          66,           0
          67,           0
          68,           0
          69,           0
          70,           0
          71,           0
          72,           0
          73,           6
          74,           0
          75,           0
          76,           0
          77,          13
          78,           0
          79,           0
          80,           0
          81,           0
          82,           0
          83,           0
          84,           0
          85,           6
          86,           0
          87,           0
          88,           0
          89,           0
          90,           0
          91,           0
          92,           0
          93,           0
          94,           0
          95,           0
          96,           0
          97,           0
          98,           0
          99,           0
         100,           0

我尝试使用拆分文件,.split('"Scan","Cycle","Time","ms",')但我无法找到一种干净的方法来使用 loadtxt 或 genfromtxt 使用 numpy 导入它。

“扫描”、“周期”、“时间”、“毫秒”部分中唯一重要的值是毫秒本身,因为我可以轻松地将其转换为秒、分钟等。

提前感谢您的帮助。

编辑:该文件有大约 700-800 个块,每个块都有它自己的“ms”,这是与块关联的时间,但我也关心块值,它具有从 1 到 100 的“amu”和相关计数。对不起,如果我不清楚。

标签: pythonnumpycsv

解决方案


推荐阅读