Python 如何从测试文件的列中获取元素
如果我有这样一个文本文件: 第1栏第2栏第3栏 熊5 10 海龟7 5 蛇9 7 大猩猩10 8 目标是根据函数中指定的参数值计算第2列或第3列的标准偏差。我知道如何计算标准偏差,所以问题是如何指定要使用的列,以及如何使用/读取文本文件中的值作为STD公式的输入(如果它们是列形式) 到目前为止,我的代码是:Python 如何从测试文件的列中获取元素,python,Python,如果我有这样一个文本文件: 第1栏第2栏第3栏 熊5 10 海龟7 5 蛇9 7 大猩猩10 8 目标是根据函数中指定的参数值计算第2列或第3列的标准偏差。我知道如何计算标准偏差,所以问题是如何指定要使用的列,以及如何使用/读取文本文件中的值作为STD公式的输入(如果它们是列形式) 到目前为止,我的代码是: with open('file.txt','r') as f: for line in f: line = line.strip().split(" ") pr
with open('file.txt','r') as f:
for line in f:
line = line.strip().split(" ")
print (line)
这所做的只是将每个条目拆分为一个列表。但我不知道如何索引每个列表的第二个元素并将它们添加到一起。它不会让我
from statistics import stdev
def sd(d, column):
"""Calculates SD. Given column can be 0 or 1"""
return stdev([d[k][column] for k in d.keys()])
d = {}
with open("test.txt") as f:
for line in f:
line = line.strip().split()
if line:
d[line[0]] = (int(line[1]), int(line[2]))
calculated_sd = sd(d, 0)
这应该行得通。函数的参数列可以是0或1。我所做的是读取文件并将信息存储到字典中,每个动物都是一个键,列是与动物键关联的元组。
顺便说一句,你应该先尝试编码你的方法,如果它不起作用,在这里询问,而不是直接询问代码
如果您知道如何计算标准偏差,我想您所需要的就是提取值。编辑一点您的代码:
def getcolumn(filename, idx):
cval = []
with open(filename,'r') as f:
for line in f:
cval.append(line.strip().split()[idx])
return cval
这是一个可以在代码中实现的函数filename
是一个字符串,其中包含文件名,idx
要提取的列的索引(记住索引从0开始)。line.strip().split()
是在列表中转换的行,因此插入要获取元素的列的索引并将其附加到cval
调用函数:
values = getcolumn('file.txt', 1)
values
是包含文本文件第1列值的列表。您可以使用它来计算标准偏差。您尝试过什么,它到底有什么问题?谢谢您的回答,我编辑并添加了我的代码。欢迎您!如果你觉得这个答案有用,记得把它标记为你问题的答案。快乐编码!你有没有办法看一下我在问题中发布的代码。我还编辑了问题本身。谢谢,但如果我们已经有一个列表要处理,为什么还要附加到列表中?它不是同一个列表line.strip().split()
包含文件的一行cval
包含您需要的列。这是从文本文件中提取列的可能方法之一。这不是唯一的方法,但我尽量接近您提供的代码。