Python - 迭代文本文件的最佳方法?

时间:2014-10-03 08:35:51

标签: python

我有一个文本文件,里面有几个“数据块”,如下所示:

log20140109
value1 3.056
value2 1.045
value3 0.064
log20140209
value1 1.036
value2 4.565
value3 3.344
log20140209
value1 0.432
value2 5.834
value3 3.030
and so on...

这个想法是从该文本文件中读取数据并绘制一个图形,其中x轴值是以log-prefix开头的字符串,那些浮点数在y轴上。每个值应该是该图表上的一行。

读取绘制图形值的最佳方法是什么?我知道有关列表和词典的基本内容,但在这种情况下我还没有找到如何应用它们。是否还有其他可以使用的数据对象?

1 个答案:

答案 0 :(得分:3)

如果没有更灵活的东西,您可以使用以下内容将数据导入到pandas Dataframe中:

import pandas as pd
with open('bla.txt') as f:
    x = f.read()
all_lines = x.split('\n')
log_names = all_lines[0::4]
value1 = [float(x.split(' ')[1]) for x in all_lines[1::4]]
value2 = [float(x.split(' ')[1]) for x in all_lines[2::4]]
value3 = [float(x.split(' ')[1]) for x in all_lines[3::4]]
df = pd.DataFrame([value1, value2, value3], columns=['value1', 'value2', 'value3'], index =log_names)

没有完全遵循你想要绘制的方式,但是pandas应该能够处理它。

df.plot()

以此为开头

enter image description here