Sie haben die Aufgabe, einen Datenrahmen mit drei Zeichenfolgenspalten zu bereinigen, um dies sicherzustellen Die dritte Spalte enthält den korrekten Wert für die angegebene Kombination der ersten beiden Spalten. Der von Ihnen bereitgestellte Codeausschnitt versucht, den Datenrahmen nach den ersten beiden Spalten zu gruppieren und für jede Kombination den häufigsten Wert der dritten Spalte auszuwählen. Beim Versuch, die agg-Funktion auszuführen, tritt jedoch ein Problem auf.
Die Syntax, die Sie in Ihrem Code verwendet haben, ist veraltet . Verwenden Sie stattdessen die Funktion pd.Series.mode, die in Pandas-Versionen 0.16 und höher verfügbar ist. Diese Funktion gibt den häufigsten Wert in einer Reihe von Zeichenfolgen zurück. So wenden Sie es an:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode)
Diese Syntax gruppiert den Datenrahmen nach „Land“ und „Stadt“, wendet die pd.Series.mode-Funktion auf die Spalte „Kurzname“ jeder Gruppe an und zeigt die an Ergebnisse.
Wenn Sie die Ausgabe als DataFrame benötigen, verwenden Sie dies line:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode).to_frame()
Die pd.Series.mode-Funktion bewältigt auch effektiv Situationen, in denen mehrere Modi vorhanden sind. Wenn beispielsweise mehrere Werte mit der gleichen Häufigkeit wie der häufigste Wert auftreten, werden sie als Liste von Modi zurückgegeben.
Sie können die Funktion „statistics.mode“ aus der Python-Standardbibliothek verwenden. Dieser Ansatz funktioniert jedoch nicht gut, wenn mehrere Modi verarbeitet werden. Es löst einen StatisticsError aus, wenn es keinen einzelnen, häufigsten Wert gibt.
Das obige ist der detaillierte Inhalt vonWie finde ich nach der Gruppierung den häufigsten Wert in einer Pandas-DataFrame-Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!