使用Pandas读取日志文本文件提取前两列时遇ValueError问题的求助
解决日志文件读取与列提取问题
你遇到的这个ValueError其实是因为分隔符设置错了——你的日志文件是用逗号分隔字段的,但你代码里写了sep=" "(空格分隔),这就导致pandas把每一行的内容当成了单个列,自然没法给它分配6个列名啦。
另外,用skiprows=2来跳过注释行虽然可行,但如果日志里的注释行数量有变化的话就不太灵活,推荐用comment='#'参数自动忽略所有以#开头的行,更稳妥。
下面是修正后的代码,刚好能满足你提取前两列转成数组/列表的需求:
import pandas as pd # 读取文件:指定逗号分隔,自动跳过#开头的注释行,同时用第一行非注释行作为表头 data = pd.read_csv('perflog.txt', sep=",", comment='#') # 提取第一列和第二列转成列表 x = data['time'].tolist() y = data['ft'].tolist() # 如果需要numpy数组的话,可以用: # import numpy as np # x = data['time'].to_numpy() # y = data['ft'].to_numpy()
这样处理后,x就是你要的时间列表[2.0, 3.0, 4.0, 5.0],y对应的是第二列的数值列表,接下来就可以直接用来绘图或者做积分操作啦。
内容的提问来源于stack exchange,提问作者thereiswaldo
相关产品推荐
相关产品推荐

