Ich habeWie kann ich Cumsum innerhalb einer Gruppe in Pandas verwenden?
df = pd.DataFrame.from_dict({'id': ['A', 'B', 'A', 'C', 'D', 'B', 'C'], 'val': [1,2,-3,1,5,6,-2], 'stuff':['12','23232','13','1234','3235','3236','732323']})
id stuff val
0 A 12 1
1 B 23232 2
2 A 13 -3
3 C 1234 1
4 D 3235 5
5 B 3236 6
6 C 732323 -2
ich einige val
für jeden id
bekommen möchte laufen, so sieht die gewünschte Ausgabe wie folgt aus:
id stuff val cumsum
0 A 12 1 1
1 B 23232 2 2
2 A 13 -3 -2
3 C 1234 1 1
4 D 3235 5 5
5 B 3236 6 8
6 C 732323 -2 -1
Das ist, was ich versucht:
df['cumsum'] = df.groupby('id').cumsum(['val'])
und
df['cumsum'] = df.groupby('id').cumsum(['val'])
Diese
ist der Fehler, den ich bekam:
ValueError: Wrong number of items passed 0, placement implies 1
Verstanden, so dass ich das Bestehen der 'val' arg an der falschen Stelle. –
Es ist wichtig zu beachten, dass 'df.groupby ('id') ['val']' syntaktischer Zucker für 'df ['val'] ist. Groupby ('id')' wenn du 'df.groupby ('id ') 'es ist ein df-groupby, während die ersteren serie groupby sind – EdChum