2016-10-29 25 views
1

我正在处理一个CSV文件,我需要在列中找到最大的几个项目。我能够通过标准循环和比较值来找到最高值。使用Python从文件中查找多个最大值

我的想法得到了前几名值将是要么全部从列中的值的存储到一个数组,排序,再拉过去的三个指标。不过,我不确定在效率方面这是否是一个好主意。我还需要拉取与顶层值相关的其他属性,看起来像分离出这些列值会使一切变得混乱。

,我认为这样做是有三个变量,做一个运行顶值排序的交易,其中每次我找到更大的东西我比较“三甲”彼此之间并重新排序的另一件事。这似乎也有点复杂,我不知道我将如何实现它。

我会感谢一些想法,或者如果有人告诉我,如果我失去了明显的东西。让我知道如果你需要看我的示例代码(我觉得这可能是不必要的)。

编辑:澄清,如果列的值是类似的东西[2,5,6,3,1,7]我希望有的值第一= 7,第二= 6,第三= 5

+0

使用'pandas'模块 – furas

回答

2

Pandas看上去很适合你的任务:

import pandas as pd 
df = pd.read_csv('data.csv') 
df.nlargest(3, 'column name') 
+0

如果我想用“打开”,打开我的csv文件,我将如何改写“DF =”行。目前我有“data_file = csv.DictReader(csvfile)next(data_file)”(对格式化抱歉)。我应该摆脱DictReader?我用它做一些其他的事情,所以我不知道我是否可以摆脱它。 – Sveinn

+0

'打开('data.csv')为fh:df = pd.read_csv(fh)' –

相关问题