Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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_Average_Series - Fatal编程技术网

如何使用python计算一系列文件中只有一列的平均值?

如何使用python计算一系列文件中只有一列的平均值?,python,average,series,Python,Average,Series,我有一系列不同名称的文件(格式如下所示),例如: 100107_902988_6188DAAXX_s_6.0 100107_902988_6188DAAXX_s_7 (如果您注意到只有第6部分和第7部分的文件名不同) 我想得到所有这些文件最后一列数字的平均值(第8列,以15开头的那一列)!如果可能,在文本文件中,例如: 100107_902988_6188DAAXX_s_6.排序:15(或平均值) 100107_902988_6188DAAXX_s_7.排序:17 我尝试使用data.spli

我有一系列不同名称的文件(格式如下所示),例如: 100107_902988_6188DAAXX_s_6.0 100107_902988_6188DAAXX_s_7 (如果您注意到只有第6部分和第7部分的文件名不同)

我想得到所有这些文件最后一列数字的平均值(第8列,以15开头的那一列)!如果可能,在文本文件中,例如: 100107_902988_6188DAAXX_s_6.排序:15(或平均值) 100107_902988_6188DAAXX_s_7.排序:17

我尝试使用data.split命令,然后使用e[7]列,但得到了每行的平均值!!!!比如15投3(我假设我的脚本是1+5/2) 我想知道是否有人能帮助我
提前谢谢

未测试,但类似这样的东西应该可以:

import glob

def avg(lst):
    return float(sum(lst))/len(lst)

all_numbers = []
for filename in glob.glob("100107_902988_6188DAAXX_s_*.sorted"):
    numbers = []
    with open(filename, "r") as file:
        for line in file:
            numbers.append(int(line.split()[7]))
    print "{0}: {1:.2f}".format(filename, avg(numbers))
    all_numbers.extend(numbers)
print "Total average: {0:.2f}".format(avg(all_numbers))

谢谢但是我有一些困难!首先,最后一行没有运行,我得到一个语法错误:无效语法!!但是当我在没有最后一行的情况下运行它时,我得到了每个文件的编号!据我所知,最后一个是所有文件的平均值?(所以这对我来说是没有必要的)但我得到的数字还是很低的(大约3,我希望得到大约10)!有没有什么方法可以让我测试它,看看它是否计算出了正确的数字?我试着用相似的格式制作一个文件,我知道它的平均格式,但当我运行它时,我得到了列表索引range@Mahmood尝试在重要位置插入调试
print
语句,以查看它实际处理的数字。例如,在
avg
功能中,执行
print lst
print sum(lst)、len(lst)
。我猜它不知何故在列表中添加了很多
0
项,或者类似的东西。