Обычно мы должны использовать transform
, но, поскольку transform
не может принять список как функцию с groupby
объектом, мы используем agg
+ reindex
df.groupby('idx').total.agg(['sum','mean']).reindex(df.idx).reset_index()
Out[64]:
idx sum mean
0 1 17 5.666667
1 1 17 5.666667
2 1 17 5.666667
3 2 75 25.000000
4 2 75 25.000000
5 2 75 25.000000
#df.groupby('idx').total.agg(['sum','mean']).reindex(df.idx).reset_index().assign(Todat=df.total.values)