Ich habe einen Datenrahmen, auf dem ich laufen:Wie erzeuge ich neue Spalten mit pandas groupby & aggregate?
df.groupby(by="mycol").agg({"colA": "sum", "colB": "count"})
jedoch colA
und colB
müssen vorhanden sein. Was ist der "pandäische" Ansatz zum Erstellen neuer Spalten aus einer Aggregation?
Edit:
Grundsätzlich habe ich eine Reihe von Säulen und meine Aggregationen sind keine 1: 1-Abbildung. Betrachten Sie ein Beispiel, in dem ich das Verhältnis der Werte zweier Spalten als neue Spalte aggregieren möchte. Denken Sie nun an ein Wörterbuch solcher Abbildungen.
Ich weiß, dass ich in dem Beispiel nur für play
filtern und dann den Mittelwert für die gruppierten Daten berechnen konnte. Aber das ist nicht der Punkt der Frage, also ignorieren Sie bitte diese einfache Lösung, die nur ein Nebeneffekt des einfachen Beispiels ist.
>> df
outlook play temperature
0 sunny True 25
1 sunny True 25
2 overcast True 19
3 rain False 21
4 overcast False 33
5 rain False 27
6 rain False 22
7 overcast True 26
8 sunny True 13
9 sunny True 16
# should become:
>> df.groupby(by="outlook").agg(?)
play_mean_temp
sunny 19.75
overcast 22.50
rain NaN
Benötigen Sie 'df.groupby (von =" mycol ") .agg (['sum', 'count'])'? – jezrael
Können Sie Beispieldaten und die gewünschte Ausgabe hinzufügen? – jezrael
@jezrael hinzugefügt wie gewünscht. Danke für Ihre Hilfe! – Xiphias