多くの列を持つCSVファイルがあります。いずれかの列の値に基づいて(番号の降順で)行を並べ替えようとしています。そして、私はトップ10を出力するためだけにそれを望んでいます。しかし、次のコードを使用すると、間違った出力が得られます。
import csv
f = open('SNPs.csv', "rU")
reader = csv.reader(f)
output = [row for row in reader]
output.sort(key=lambda x: x[32], reverse=True)
print dict((row[10], (row[11], row[8], row[32])) for row in output[:10])
出力は次のようになります。
'XRgroup8': ('38', '2', '0.47'), '2': ('30', '13', '0.37'), 'Chromosome': ('Position', 'Distance', 'GC'), 'XRgroup5': ('54', '1', '0.45')
したがって、明らかに10個の値を返しておらず、それらは順番に並んでいません。何か案は?