df.head
'groupby.count' mit agg
Populous Continents
Australia 2.331602e+07 Australia
Brazil 2.059153e+08 South America
Canada 3.523986e+07 North America
China 1.367645e+09 Asia
France 6.383735e+07 Europe
Oben sind die ersten 5 Einträge meiner Datenrahmen verwenden. Ich möchte sie nach Kontinenten gruppieren, dann möchte ich eine statistische Analyse durchführen. Ich möchte einen neuen Datenrahmen mit den Avg, Summe, STD von jeder Gruppe volkreich sowie die count
von Ländern in jeder Gruppe, wie seine Spalten erstellen.
new_df =df.groupby('Continents')['Populous'].agg({ 'Avg': np.average, 'Sum':np.sum, 'STD': np.std})
, kümmert sich um drei Spalten, aber ich weiß nicht, wie man count
dort bekommen. Ich habe versucht, einschließlich 'Size': count
, innerhalb der agg
-Methode, aber es führte zu einem Fehler.
Vielen Dank.
Verwenden Sie "Größe": "count", wobei count eine Zeichenfolge ist. – root
Ah. Dies scheint zu funktionieren. Also funktionieren nicht-numpy Funktionen, ohne den Funktionsnamen in Strings umzuwandeln, aber andere Funktionen erfordern Stringkonvertierung? – Moondra
Die pandas devs haben einen String-Alias für allgemeine Funktionen hinzugefügt, die in 'groupby' verwendet werden. Zum Beispiel könnte Ihr gesamtes 'agg' geschrieben werden: {'Avg': 'mean', 'Sum': 'sum', 'STD': 'std'}'. Beachten Sie, dass es einen kleinen Unterschied zwischen ''mean' 'und' np.average 'gibt, in dem' 'mean'' 'NaN' ignoriert, während' np.average' 'NaN' zurückgibt, wenn eines vorhanden ist. – root