2014-08-28 17 views
3

我有一个220万行的大文件。选择列中的某些元素并在大文件中重复查找它们的最大值。使用PYTHON

Value Label 
4  1 
6  1 
2  2 
6  2 
3  2 
5  3 
8  3 
7  3 
1  4 
5  4 
2  5 
4  5 
1  5 

我想知道最快的方式得到下面的输出,其中“最大”专卖店的最大值在每个标签

Label Max 
    1  6 
    2  6 
    3  8 
    4  5 
    5  4 

我实现用正常的逻辑“为” &“而”在python循环,但它需要几个小时。我期望大熊猫能够解决这个问题。

+0

通过什么方式是万卢比? – EdChum 2014-08-28 08:14:16

+2

@EdChum我[发现它](http://en.wikipedia.org/wiki/Lakh) - 它是十万 – 2014-08-28 08:17:41

+1

@PawelWisniewski听起来很有用的计数器我会将它添加到我的模糊混乱的测量单位,如石块,人(10,000)等.. – EdChum 2014-08-28 08:20:22

回答

5

一个GROUPBY对象调用max

In [116]: 

df.groupby('Label').max() 
Out[116]: 
     Value 
Label  
1   6 
2   6 
3   8 
4   5 
5   4 

如果你想从索引中恢复Label列然后调用reset_index

In [117]: 

df.groupby('Label').max().reset_index() 
Out[117]: 
    Label Value 
0  1  6 
1  2  6 
2  3  8 
3  4  5 
4  5  4