2014-08-28 2 views
3

У меня есть большой файл с 2,2 миллиона строк.Выберите некоторые элементы столбца и найдите их максимум, многократно над большим файлом. ИСПОЛЬЗОВАНИЕ 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 

Я хочу знать, самый быстрый способ получить следующий результат, где «Max» сохраняет максимальное значение в каждой этикетке

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

я реализовал нормальную логику, используя «за» & «а» петли в python, но это занимает несколько часов. Я ожидаю, что у панд будет что-то для решения этой проблемы.

+0

что лакха кстати? – EdChum

+2

@EdChum I [нашел это] (http://en.wikipedia.org/wiki/Lakh) - это сто тысяч –

+1

@PawelWisniewski звучит полезный счетчик, я добавлю его мой арсенал обфусканных единиц измерения, таких как камни, драм, человек (10 000) и т. д. – EdChum

ответ

5

Вызов max на объекте GroupBy:

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 
Смежные вопросы