HoCome posso usare cumsum all'interno di un gruppo in Pandas?
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
mi piacerebbe far funzionare alcuni dei val
per ogni id
, quindi l'uscita desiderata simile a questo:
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
Questo è quello che ho cercato:
df['cumsum'] = df.groupby('id').cumsum(['val'])
e
df['cumsum'] = df.groupby('id').cumsum(['val'])
Questo è l'errore che ho ottenuto:
ValueError: Wrong number of items passed 0, placement implies 1
ha, quindi passavo l'arg 'val' nel posto sbagliato. –
È importante notare che 'df.groupby ('id') ['val']' è zucchero sintattico per 'df ['val']. Groupby ('id')' quando si esegue 'df.groupby ('id ') 'è un df groupby mentre i primi sono raggruppati in serie – EdChum