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
私は第1列に多くの繰り返し項目があります。私は第3列に基づいてそれらのうちの1つだけを選びたいと思う。次の行のように:
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)
あなたは問題が何であるかを知っているのですか?
私はあなたがwriterow' –
'に渡したときに、' new_line'は、文字列のリストである私は改行=」の両方を削除 "が、まだそれはないと思います私にすべてのリピートを与えました – ARM
いいえ、私は最終ループ 'new_line'であなたの変数を意味しました –