python中文本文件列平均值的计算

2024-04-19 21:26:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个13列10000行的文本文件。我应该计算第二列和第五列的平均值和标准差,但每200个数字一次。 代码:

with open('myfile.txt') as f:
    lis1 = [float(line.split()[1]) for line in f]
    lis2 = [float(line.split()[4]) for line in f]
    i = 0

    while (i < len(lis1)):
        g1 = sum(lis1[i:i+200])/200
        g2 = sum(lis2[i:i+200])/200
        i=i+200 

我不明白为什么g2是空的,如何修复它?在


Tags: 代码inforwithline数字float平均值
2条回答

如果可能的话,你应该只读一遍你的文件。否则,必须重置文件指针以再次读取。注意:代码未经测试。在

lines = []
with open('myfile.txt') as f:
    lines = [line.split() for line in f]
    i = 0

# Now file is closed - operate on the lines read in.
inc = 200
for i in range(0, len(lines), inc):
    # Get all column total
    column_total = [sum(x) for x in zip(*lines[i:i+inc]) ]
    g1 = column_total[1] / inc
    g2 = column_total[4] / inc

这是因为当您创建列表“lis1”时,您遍历了整个文件,这意味着您应该重置它。尝试在lis1和lis2调用之间使用f.seek(0)。在

相关问题 更多 >