Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich nach der Gruppierung den häufigsten Wert in einem Pandas-DataFrame?
Um Daten mit mehreren Zeichenfolgenspalten zu bereinigen, gruppieren Sie nach den ersten beiden Spalten und wählen Sie den häufigsten Wert für die dritte Spalte aus in jeder Kombination.
Der bereitgestellte Code schlägt mit einem KeyError fehl und Eine Gruppierung nur nach der Spalte „Stadt“ führt zu einem AssertionError. Eine robuste Lösung ist erforderlich.
Post pandas v0.16, pd.Series.mode bietet eine vielseitige und effiziente Methode für diese Aufgabe:
source.groupby(['Country', 'City'])['Short name'].agg(pd.Series.mode)
Im Falle mehrerer Modi innerhalb einer Gruppe gibt Series.mode eine Liste von Werten zurück. Wenden Sie für ein einzelnes Ergebnis eine Lambda-Funktion an:
source.groupby(['Country', 'City'])['Short name'].agg(lambda x: pd.Series.mode(x)[0])
scipy.stats.mode kann ebenfalls verwendet werden, löst jedoch einen Fehler aus, wenn mehrere Modi auftreten.
Das obige ist der detaillierte Inhalt vonWie finde ich nach der Gruppierung den häufigsten Wert in einem Pandas-DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!