Pandas: Erstellen einer aggregierten Spalte in DataFrame
Mit dem DataFrame-im folgenden als ein Beispiel,
In [83]:
df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)})
df
Out[83]:
A B values
0 1 1 10
1 1 2 15
2 2 1 20
3 2 2 25
Was wäre eine einfache Möglichkeit zum erzeugen einer neuen Spalte mit der aggregation der Daten über eine der Spalten?
Zum Beispiel, wenn ich Summe values
über Elemente in A
In [84]:
df.groupby('A').sum()['values']
Out[84]:
A
1 25
2 45
Name: values
Wie bekomme ich
A B values sum_values_A
0 1 1 10 25
1 1 2 15 25
2 2 1 20 45
3 2 2 25 45
InformationsquelleAutor der Frage foglerit | 2012-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Wouter Overmeire
Ich einen Weg gefunden, mit
join
:Jemand einen einfacheren Weg, es zu tun?
InformationsquelleAutor der Antwort foglerit
Dies ist nicht so direkt, aber ich fand es sehr intuitiv zu bedienen (die Verwendung von map zu erstellen Sie neue Spalten aus einer anderen Spalte) und kann angewendet werden, um viele andere Fälle:
InformationsquelleAutor der Antwort joaquin
InformationsquelleAutor der Antwort Garrett