2017-10-19 7 views

Antwort

2

Verwendung groupby mit Aggregation von agg und Funktionen cummax und cumsum finden will , zuletzt join zur Vorlage:

d = {'cummax':'max', 'cumsum':'sum'} 
df_result = df.join(df.groupby('A')['B'].agg(['cummax','cumsum']).rename(columns=d)) 
print (df_result) 
    A B max sum 
0 a 5 5 5 
1 a 2 5 7 
2 a 4 5 11 
3 b 7 7 7 
4 b 1 7 8 
5 b 11 11 19 
6 b 3 11 22 

Wenn möglich ändern original DataFrame:

df[['max','sum']] = df.groupby('A')['B'].agg(['cummax','cumsum']) 
print (df) 
    A B max sum 
0 a 5 5 5 
1 a 2 5 7 
2 a 4 5 11 
3 b 7 7 7 
4 b 1 7 8 
5 b 11 11 19 
6 b 3 11 22 
Verwandte Themen