1). Ich habe einen folgenden Beispiel-Datensatz:Umbenennen von Spaltennamen in Pandas Groupby Funktion
>>> 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
I Gruppe eine Region, die Beobachtungen dieses Datensatz von ID gesucht und für jede Gruppe die Zählung summiert werden. So habe ich so etwas wie diese:
>>> 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
Bei Verwendung as_index = False Ich bin in der Lage eine "Sql-Like" Ausgabe zu erhalten. Mein Problem ist, dass ich die Gesamtanzahl der Variablen hier nicht umbenennen kann. So in Sql, wenn die oben, was tun wollte ich so etwas tun würde:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID,Region
order by ID, Region
Wie wir sehen, ist es sehr einfach für mich das aggregierte Variable ‚count‘ zu Total_Numbers in SQL umbenennen. Ich wollte dasselbe in Pandas machen, aber ich konnte keine solche Option in der groupby Funktion finden. Kann jemand helfen?
2). Die zweite Frage und mehr einer Beobachtung ist, dass es möglich ist, die Spaltennamen in der Pandas-Datenframe-Funktion direkt zu verwenden, ohne sie in Anführungszeichen einzuschließen? Ich verstehe, dass die Variablennamen String sind, also in Anführungszeichen gesetzt werden müssen, aber ich sehe, ob die Verwendung außerhalb des Datenrahmens funktioniert, und als Attribut brauchen wir sie nicht in Anführungszeichen zu setzen. 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. Das ist eigentlich ein bisschen schmerzhaft, da wir in SQL oder in SAS oder einer anderen Sprache einfach den Variablennamen verwenden, ohne sie zu zitieren. Irgendwelche Vorschläge dazu?
Bitte schlagen Sie auf die oben genannten zwei Punkte (1. eine Haupt-, 2. mehr einer Meinung).
Dank
Thxs für die Antwort.Das Umbenennen half, außer dass ich in der ersten Syntax denke, wir müssen auch die Spalten = .. so .rename (columns = {'count': 'Total_Numbers' }). Andernfalls würde es für den Index benötigt und ändert den Spaltennamen nicht. Die zweite Sache funktioniert perfekt, aber wenn eine oder zwei Variablen umbenannt werden müssen, dann denke ich, dass die erste bequemer ist, anstatt alle Variablennamen in der zweiten Syntax zu erwähnen. Ich hatte gehofft, wenn es etwas in groupby gibt, aber sieht aus, als gäbe es das nicht. Auch ich verstehe pandas df ist ein Diktat intrinsisch. Wir hoffen auf etwas Flexibilität in Panda –
Baktaawar