Как рассчитать среднее значение только одного столбца в серии файлов с питоном? - PullRequest
0 голосов
/ 24 июня 2011

У меня есть серия файлов (с форматом, показанным ниже) с разными именами, такими как: 100107_902988_6188DAAXX_s_6.sorted 100107_902988_6188DAAXX_s_7.sorted (если вы заметили, что только части 6 и 7 отличаются в имени файла)

enter image description here

Я бы хотел получить среднее значение последнего столбца с номерами (номер столбца 8, который начинается с 15) для всех этих файлов!если возможно в текстовом файле, таком как: 100107_902988_6188DAAXX_s_6.sorted: 15 (или какое-либо среднее значение) 100107_902988_6188DAAXX_s_7.sorted: 17

Я попытался с помощью команды data.split, а затем с помощью столбца e [7], ноЯ получил среднее значение каждой строки !!!!например, 3 на 15 (я предполагаю, что мой сценарий составил 1 + 5/2). Интересно, может ли кто-нибудь помочь мне заранее, спасибо!

1 Ответ

1 голос
/ 24 июня 2011

Не проверено, но что-то вроде этого должно помочь:

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))
...