2016-10-16 12 views
5

Kiedy wpadnę John jako duplikat określenie „nazwa” jako nazwa kolumny:Jak spadać duplikat z DataFrame uwzględnieniem wartości rachunek innej kolumnie

import pandas as pd 
data = {'name':['Bill','Steve','John','John','John'], 'age':[21,28,22,30,29]} 
df = pd.DataFrame(data) 
df = df.drop_duplicates('name') 

pandy spada wszystkie podmioty pasujących opuszcza lewą najbardziej:

age name 
0 21 Bill 
1 28 Steve 
2 22 John 

Zamiast tego chciałbym zachować wiersz, gdzie wiek Johna jest najwyższy (w tym przykładzie jest to wiek 30. Jak to osiągnąć?

+0

spróbuj tego: 'df.drop_duplicates ('name', 'trzymać' Ostatnia =)' lub 'df.sort_values ​​('wiek') .drop_duplicates ('name', keep = 'last') ' – MaxU

Odpowiedz

4

Try to:

In [75]: df 
Out[75]: 
    age name 
0 21 Bill 
1 28 Steve 
2 22 John 
3 30 John 
4 29 John 

In [76]: df.sort_values('age').drop_duplicates('name', keep='last') 
Out[76]: 
    age name 
0 21 Bill 
1 28 Steve 
3 30 John 

czy to w zależności od celów:

In [77]: df.drop_duplicates('name', keep='last') 
Out[77]: 
    age name 
0 21 Bill 
1 28 Steve 
4 29 John 
+0

Świetnie! Sortowanie byłoby tu rozwiązaniem z ustawionym na stałe ustawieniem "keep". Dzięki! – alphanumeric