Python: Abrufen der Zeile mit dem Maximalwert in Gruppen mithilfe von Groupby
Ich benötige jedoch nur einen Datensatz pro Gruppe, auch wenn es mehr als einen Datensatz mit maximalem Wert in dieser Gruppe gibt.
Im Beispiel unten benötige ich einen Datensatz für „s2“. Für mich ist es egal, welches.
Code: Select all
>>> df = DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'], 'Value':[1,2,3,4,5,6], 'count':[3,2,5,10,10,6]})
>>> df
Mt Sp Value count
0 s1 a 1 3
1 s1 b 2 2
2 s2 c 3 5
3 s2 d 4 10
4 s2 e 5 10
5 s3 f 6 6
>>> idx = df.groupby(['Mt'])['count'].transform(max) == df['count']
>>> df[idx]
Mt Sp Value count
0 s1 a 1 3
3 s2 d 4 10
4 s2 e 5 10
5 s3 f 6 6
>>>