我有一个CSV文件,我使用CSV库中的DictReader将此文件转换为字典。
我的代码是这样的:
with open('file.csv', 'r') as file:
reader = csv.DictReader(file)
highest = sorted(reader, key=lambda x: (x['value']))
print(highest)
但这不起作用,列表highest
拥有CSV的所有数据,我只想要10个最高值。但我不知道如何使用限制列表只使用字典接收10个最高值。
我不能用熊猫
您可以在排序后对列表进行切片以获得10个最高值:
highest = sorted(reader, key=lambda x: x['value'])[-10:]
您还可以使用heapq.nlargest
方法在O(n log t)(其中t
是要返回的项数)时间复杂度而不是O(n log n)中实现相同的效果:
import heapq
highest = heapq.nlargest(10, reader, key=lambda x: x['value'])