transform regresa un valor por cada fila, no uno por grupo.

Arrastra en el orden correcto los pasos para calcular qué % del total de su categoría representa cada producto.

1df['pct_categoria'] = df['precio'] / df['total_categoria'] * 100
2print(df)
3df['total_categoria'] = df.groupby('categoria')['precio'].transform('sum')