Fondamentalmente uguale a Select first row in each GROUP BY group? solo in panda.panda: come selezionare la prima riga in ogni gruppo GROUP BY?
df = pd.DataFrame({'A' : ['foo', 'foo', 'foo', 'foo', 'bar', 'bar', 'bar', 'bar'],
'B' : ['3', '1', '2', '4','2', '4', '1', '3'],
})
Ordinamento sembra essere molto promettente:
df.sort('B')
A B
1 foo 1
6 bar 1
2 foo 2
4 bar 2
0 foo 3
7 bar 3
3 foo 4
5 bar 4
Ma poi la prima non darà il risultato desiderato ... df.groupby ('A') prima()
B
A
bar 2
foo 3
d'accordo, mi stavo chiedendo lo stesso me stesso. – ihadanny
Il problema è che '' df.sort ('B') '' restituisce una copia * ordinata * di df, non cambia df stesso. Se vuoi cambiare df, devi fare una delle seguenti azioni: '' df = df.sort_values ('B') '' o '' df.sort_values (inplace = True) ''. (i panda ora usano '' sort_values'' invece di '' sort''.) – prooffreader