Что я пытаюсь сделать, что такой сценарий считывает текущий файл:Проверьте, если предыдущая строка имеет то же строку, чем текущая строка и суммарное значение другого столбца
chr1,700244,714068,LOC100288069,982
chr1,1568158,1570027,MMP23A,784
chr1,1567559,1570030,MMP23A,784
chr1,1849028,1850740,TMEM52,799
chr1,2281852,2284100,LOC100129534,934
chr1,2281852,2284100,LOC100129534,800
chr1,2460183,2461684,HES5,819
chr1,2460183,2461684,HES5,850
chr1,2517898,2522908,FAM213B,834
chr1,2518188,2522908,FAM213B,834
chr1,2518188,2522908,FAM213B,834
chr1,2518188,2522908,FAM213B,834
chr1,2517898,2522908,FAM213B,834
, если столбец 3 повторов в строке, суммировать значение colum 4 и вывести среднее значение такой суммы. Выходной сигнал должен быть:
chr1,700244,714068,LOC100288069,982
chr1,1568158,1570027,MMP23A,784
chr1,1849028,1850740,TMEM52,799
chr1,2281852,2284100,LOC100129534,934
chr1,2460183,2461684,HES5,834.5
chr1,2517898,2522908,FAM213B,867
Я пробовал этот сценарий, но не работал. Может ли кто-нибудь дать мне подсказку?
f1 = open('path', 'r')
reader1 = f1.read()
f3 = open('path/B_Media.txt','wb')
for line1 in f1:
coluna = line1.split(',')
chr = coluna[0]
start = coluna[1]
end = coluna[2]
gene = coluna[3]
valor_B = coluna[4]
previous_line = current_line
current_line = line
gene2 = previous_line[3]
soma_B2 = previous_line[4]
soma_de_B = int(valor_B)+int(soma_B2)
if gene == gene2:
x += 1
media_gene = soma_de_B/x
output = chr + "," + start + "," + end + "," + gene + "," +valor_B+","+media_gene
f3.write(output)
f3.flush()
print output
Спасибо так много! Это отлично работает =) Командная строка полностью отличается от ранее hhahhahahahaaha С уважением, – Jontexas
@Jontexas Добро пожаловать! Рассмотрите возможность установки принятого ответа, если это вам помогло :) – adrianus
Done @adrianus :) Это очень помогло! = D – Jontexas