GroupBy pandas DataFrame und wählen Sie den am häufigsten verwendeten Wert aus

Ich habe einen Datenrahmen mit drei Zeichenfolgenspalten. Ich weiß, dass der einzige Wert in der 3. Spalte für jede Kombination der ersten beiden gültig ist. Um die Daten zu bereinigen, muss ich nach Datenrahmen nach den ersten beiden Spalten gruppieren und den häufigsten Wert der dritten Spalte für jede Kombination auswählen.

Mein Code:

import pandas as pd
from scipy import stats

source = pd.DataFrame({'Country' : ['USA', 'USA', 'Russia','USA'], 
                  'City' : ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'],
                  'Short name' : ['NY','New','Spb','NY']})

print source.groupby(['Country','City']).agg(lambda x: stats.mode(x['Short name'])[0])

Die letzte Codezeile funktioniert nicht. Sie lautet "Key error 'Short name'" und wenn ich versuche, nur nach Stadt zu gruppieren, erhalte ich einen AssertionError. Was kann ich tun, um das Problem zu beheben?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage