![](/img/trans.png)
[英]How to split values from a CSV file in python using pandas or otherwise?
[英]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.