繁体   English   中英

如何在没有熊猫的情况下使用python从CSV文件中获取10个最大值

[英]How to get the 10 highest values from a CSV file using Python without Pandas

我有一个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'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM