1
我有一段python代碼,下面提到但沒有返回我想要的東西。和一個像這個例子的文件:使用python進行過濾時出錯
AAAS,ENST00000552161,1.70232E-30
AAAS,ENST00000548258,1.09222E-84
AAAS,ENST00000549450,1.3171E-108
AAAS,ENST00000209873,22.3297
AAAS,ENST00000546562,0.170807
AAAS,ENST00000394384,5.53609
AAAS,ENST00000547238,0.829774
AACS,ENST00000316543,0.49901
AACS,ENST00000261686,2.41428
我第一列有很多重複的項目。我只想在第三列中選擇其中的一個。像下面行:
AAAS,ENST00000209873,22.3297
AACS,ENST00000261686,2.41428
這是代碼:
import csv
from collections import defaultdict
with open('data.csv', newline='') as f, open('out.csv', 'w', newline='') as out:
f_reader = csv.reader(f)
out_writer = csv.writer(out)
d = defaultdict(list)
for line in f_reader:
d[line[1]].append(line)
for _,v in d.items():
new_line = sorted(v, key=lambda i:float(i[2]), reverse=True)[0]
out_writer.writerow(new_line)
你知道問題是什麼?
我不認爲'new_line'是一個字符串列表,當你把它傳遞給'writerow' –
我刪除了這兩個新行=」'但仍給我所有重複 – ARM
不,我的意思是你的變量在最後一個循環'new_line' –