Renaming Column Names in Pandas Groupby function [duplicate]
Diese Frage hat hier bereits eine Antwort:
Mehrere Aggregationen derselben Spalte mit pandas GroupBy.agg () 3 answers1). Ich habe den folgenden Beispieldatensatz:
>>> df
ID Region count
0 100 Asia 2
1 101 Europe 3
2 102 US 1
3 103 Africa 5
4 100 Russia 5
5 101 Australia 7
6 102 US 8
7 104 Asia 10
8 105 Europe 11
9 110 Africa 23
Ich wollte die Beobachtungen dieses Datensatzes nach ID und Region gruppieren und die Anzahl für jede Gruppe aufsummieren. Also habe ich so etwas benutzt:
>>> print(df.groupby(['ID','Region'],as_index=False).count().sum())
ID Region count
0 100 Asia 2
1 100 Russia 5
2 101 Australia 7
3 101 Europe 3
4 102 US 9
5 103 Africa 5
6 104 Asia 10
7 105 Europe 11
8 110 Africa 23
On using as_index = False Ich kann eine SQL-ähnliche Ausgabe erhalten. Mein Problem ist, dass ich die Gesamtvariablenzahl hier nicht umbenennen kann. Wenn ich also in SQL das obige tun wollte, würde ich so etwas tun:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
Wie wir sehen, ist es für mich sehr einfach, die Aggregatvariable 'count' in SQL in Total_Numbers umzubenennen. Ich wollte dasselbe in Pandas tun, konnte aber in der Funktion "Gruppieren nach" keine solche Option finden. Kann jemand helfen?
2). Die zweite und wichtigere Frage ist, ob es möglich ist, die Spaltennamen in der Pandas-Datenrahmenfunktion direkt zu verwenden, ohne sie in Anführungszeichen zu setzen. Ich verstehe, dass die Variablennamen Zeichenfolgen sind, also müssen sie in Anführungszeichen stehen, aber ich sehe, wenn Sie die Funktion für externe Datenrahmen verwenden und sie als Attribut nicht in Anführungszeichen stehen müssen. Wie df.ID.sum () usw. Nur wenn wir es in einer DataFrame-Funktion wie df.sort () oder df.groupby verwenden, müssen wir es in Anführungszeichen setzen. Dies ist in der Tat etwas schmerzhaft, da in SQL, SAS oder anderen Sprachen der Variablenname einfach ohne Anführungszeichen verwendet wird. Irgendwelche Vorschläge dazu?
Bitte schlagen Sie zu den beiden oben genannten Punkten vor (1. eine Haupt-, 2. mehr einer Meinung).
Vielen Dan