2016-10-29 48 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)' –

相關問題