我正在尝试绘制格式如下的日志文件的选定列:
This is some random simulation info that is there but I dont care about.
------------------------------------------------------------------------------
Run-control output:
------------------
RUN ITER. HH:MM:SS.SS DT(E) UMAX VMAX WMAX U* W* THETA* Z_I ENERG. DISTENERG DIVOLD DIVNEW UMAX(KJI) VMAX(KJI) WMAX(KJI) ADVECX ADVECY MGCYC
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0 0 00:00:00.00 2.7900A 2.8918 -5.5400 1.1731 0.100 0.00 0.315E+00 0. 0.374E+01 0.278E-02 0.000E+00 0.000E+00 42 298 0 143 118 299 44 0 184 0.000 0.000 0
0 1 00:00:02.79 2.7500A 2.8905 -5.5399 1.7561 0.030 0.00 -0.999E-01 0. 0.378E+01 0.947E-02 0.165E-03 0.133E-03 42 298 299 143 118 299 18 0 299 0.000 0.000 4
0 2 00:00:05.54 2.5700A 2.8891 -5.5397 2.4148 0.043 0.00 -0.982E+00 0. 0.379E+01 0.272E-01 0.136E-03 0.116E-03 42 298 299 143 118 299 40 298 295 0.000 0.000 4
“列表”中的值以空格分隔,有时两个,有时三个。我的猜测是遍历文件,找到标题行并返回索引。然后使用pd.read_csv将其添加到列表中,但我无法执行它想要的操作,即拥有一个数据框,然后绘制各个列(主要是“ DT(E)”,“ U / V / WMAX”)。如何对以上文件结构进行排序,以便可以绘制各个列?
编辑: 我找到了一个方法。我遍历文件的每一行以找到关键字“ RUN”并获取索引。然后将文件切片,以仅合并该RUN字符串索引+2行之后的文件。然后,将每一行作为字符串放入列表中,然后使用string.split()对其进行拆分。然后有了列表列表,将其更改为数据框,使用pd.DataFrame()非常简单。