在Python中用空格分隔的列和行来绘制日志文件

时间:2019-11-06 15:10:45

标签: python pandas plot

我正在尝试绘制格式如下的日志文件的选定列:

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()非常简单。

0 个答案:

没有答案
相关问题