例入力ファイル、最高のユニークなヒット
name1 name1 100
name1 name2 99.4
name1 name3 67.8
name1 name4 40.2
name2 name2 100
name2 name1 98
私は1たい)グループ)は、名前のカラム1と2を比較し、それが同じであれば、3を無視する)とのラインを印刷最高値。だから私の出力は、私が代わりに最大の並べ替えを使用する場合、私の最高のヒットが消え、
name1 name2 99.4
name2 name1 98
私の試みです。
import csv
from itertools import groupby
from operator import itemgetter
with open('input.txt','rb') as f1:
with open('output.txt', 'wb') as f2:
reader = csv.reader(f1, delimiter='\t')
writer1 = csv.writer(f2, delimiter='\t')
for group, rows in groupby(reader, itemgetter(0)):
for line in rows:
if line[0] == line[1]:
continue
else:
best = max(rows, key=lambda r: (float(r[2])))
writer1.writerow(best)
あなたの現在のコードが期待した結果をもたらさない理由をもう少し説明してください。期待される成果は? – Guillaume
私の出力が上です、それは私にエラーまたはmax()arg空のseq-sを与える、私はこれを行うために2つの別々のスクリプトを書くことができます..しかし、私はこのための1つのスクリプトをしたいです。 – user3224522