Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich nach der Gruppierung den häufigsten Wert in einem Pandas-DataFrame?

Wie finde ich nach der Gruppierung den häufigsten Wert in einem Pandas-DataFrame?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 01:58:09120Durchsuche

How to Find the Most Common Value in a Pandas DataFrame After Grouping?

Gruppieren Sie nach Pandas DataFrame und wählen Sie den häufigsten Wert aus

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.

Problem

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.

Lösung

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)

Adressierung mehrerer Modi

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])

Zu berücksichtigende Alternativen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn