我有一个包含许多列的大型 CSV 文件,如下所示:
id, col1, col2, col3, col4, col5
1, a, b, 2, d, e
2, b, c, 4, e, f
3, c, d, 6, f, g
我希望能够创建一个只使用某些列的字典。例如,字典将具有 id 号、col2 和 col3。此外,它应该只存储 col2 中具有最高 10 个数字的行。这是我的代码:
import csv
reader = csv.DictReader(open('SNPs.csv', newline=''), delimiter=',', quotechar='"')
但我不知道如何告诉它忽略某些列,而且我认为我不能使用 max() 返回多个值。
max(2, 4) returns 4.
编辑 我尝试使用丹尼尔的代码,但由于某种原因,排序功能无法正常工作。(我还需要使用反向排序而不是排序)。它只输出四个不同的键,此外,它们实际上并没有按数字降序排序。它还将标头作为值之一返回。
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])