Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—迭代文本文件的最佳方式?_Python - Fatal编程技术网

Python—迭代文本文件的最佳方式?

Python—迭代文本文件的最佳方式?,python,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前缀开头的字符串,而这些浮点值位于y轴上。每个值

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

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前缀开头的字符串,而这些浮点值位于y轴上。每个值都应该是该图上的一条线


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

无需进行更灵活的操作,您可以通过以下方式将数据放入pandas数据框:

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)
不完全按照你想要的方式绘制,但熊猫应该能够处理它

df.plot()
给你一个开始


无需进行更灵活的操作,您可以通过以下方式将数据放入熊猫数据框:

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)
不完全按照你想要的方式绘制,但熊猫应该能够处理它

df.plot()
给你一个开始


无需进行更灵活的操作,您可以通过以下方式将数据放入熊猫数据框:

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)
不完全按照你想要的方式绘制,但熊猫应该能够处理它

df.plot()
给你一个开始


无需进行更灵活的操作,您可以通过以下方式将数据放入熊猫数据框:

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)
不完全按照你想要的方式绘制,但熊猫应该能够处理它

df.plot()
给你一个开始


我没有真正理解你的要求。您提到了x轴和以
log
开头的值,在示例数据中,
log
行是相同的。因此,如果它们引用的是相同的
x
,我真的不明白为什么它们是3乘3分组的。尝试提供一个更好的输入和/或输出示例,说明如何对这些值进行分组。在任何情况下,大多数问题都可以通过使用合适的
函数轻松解决。抱歉,我的问题-最后一个字符串应该是log20140309。每个数据块都有一个unic“名称”。我真的不明白你在问什么。您提到了x轴和以
log
开头的值,在示例数据中,
log
行是相同的。因此,如果它们引用的是相同的
x
,我真的不明白为什么它们是3乘3分组的。尝试提供一个更好的输入和/或输出示例,说明如何对这些值进行分组。在任何情况下,大多数问题都可以通过使用合适的
函数轻松解决。抱歉,我的问题-最后一个字符串应该是log20140309。每个数据块都有一个unic“名称”。我真的不明白你在问什么。您提到了x轴和以
log
开头的值,在示例数据中,
log
行是相同的。因此,如果它们引用的是相同的
x
,我真的不明白为什么它们是3乘3分组的。尝试提供一个更好的输入和/或输出示例,说明如何对这些值进行分组。在任何情况下,大多数问题都可以通过使用合适的
函数轻松解决。抱歉,我的问题-最后一个字符串应该是log20140309。每个数据块都有一个unic“名称”。我真的不明白你在问什么。您提到了x轴和以
log
开头的值,在示例数据中,
log
行是相同的。因此,如果它们引用的是相同的
x
,我真的不明白为什么它们是3乘3分组的。尝试提供一个更好的输入和/或输出示例,说明如何对这些值进行分组。在任何情况下,大多数问题都可以通过使用合适的
函数轻松解决。抱歉,我的问题-最后一个字符串应该是log20140309。每个数据块都有一个unic“名称”。谢谢!示例图是我正在寻找的东西。我将深入研究熊猫数据帧的内容。:)谢谢你!示例图是我正在寻找的东西。我将深入研究熊猫数据帧的内容。:)谢谢你!示例图是我正在寻找的东西。我将深入研究熊猫数据帧的内容。:)谢谢你!示例图是我正在寻找的东西。我将深入研究熊猫数据帧的内容。:)