python - 平均具有行和列标题的文本文件中的列
问题描述
我是该组的新手,也是 python 的新手。我正在使用一种非常特定类型的输入文件。它是一个带有一个标题行的文本文件。此外,还有一列文本也让事情变得更烦人。我想要做的是读入这个文件,然后对数字列(如平均值、标准差等)执行操作......但是读入文件并解析出文本列给我带来了麻烦。
我已经尝试了许多不同的方法并且很接近,但我想我会联系这里的团队。如果这是 matlab,我会在几个小时前把它弄下来。到目前为止,如果我使用固定宽度来定义我的列,我认为它会起作用,但我认为可能有一种更有效的方法来读取行并正确忽略字符串。
这是文件格式。如您所见,第一行是标题......所以可以忽略。第 1 列包含文本。
....我想我想通了。我的代码可能非常粗糙,但现在可以使用:
CTlist = []
CLlist = []
CDlist = []
CMZlist = []
LDelist = []
loopout = {'a1':CTlist, 'a2':CLlist, 'a3':CDlist, 'a4':CMZlist, 'a5':LDelist}
#Specifcy number of headerlines
headerlines = 1
#set initial index to 0
i = 0
#begin loop to process input file, avoiding any header lines
with open('post.out', 'r') as file:
for row in file:
if i > (headerlines - 1):
rowvars = row.split()
for i in range(2,len(rowvars)):
#print(rowvars[i]) #JUST A CHECK/DEBUG LINE
loopout['a{0}'.format(i-1)].append(float(rowvars[i]))
i = i+1
解决方案
CTlist = []
CLlist = []
CDlist = []
CMZlist = []
LDelist = []
loopout = {'a1':CTlist, 'a2':CLlist, 'a3':CDlist, 'a4':CMZlist, 'a5':LDelist}
#Specifcy number of headerlines
headerlines = 1
#set initial index to 0
i = 0
#begin loop to process input file, avoiding any header lines
with open('post.out', 'r') as file:
for row in file:
if i > (headerlines - 1):
rowvars = row.split()
for i in range(2,len(rowvars)):
#print(rowvars[i]) #JUST A CHECK/DEBUG LINE
loopout['a{0}'.format(i-1)].append(float(rowvars[i]))
i = i+1
推荐阅读
- amazon-web-services - 如何优化 AWS 胶水的成本?
- javascript - Joi 不会将验证错误写入日志
- php - 第一次单击 word 2007 中的超链接(当它是蓝色时)导致我的网站 php 上的响应不正确
- angular - 错误:Angular 应用程序中的 NGCC 操作失败
- web-scraping - 如何从网站获取请求消息
- reactjs - socket-io-client 包上的连接(请求)过多
- python - 将函数传递给 fillna()
- javascript - 在 React 中获取具有特定类名的所有元素
- c# - 在发布模式下构建 UWP 应用程序“ilc.exe --gatekeeper”错误
- python - 在 datetime.datetime 中转换 datetime.time