python pandas dataframe cumulative-sum

python - ¿Suma acumulativa y porcentaje en la columna?



pandas dataframe (1)

Tengo un DataFrame como este:

df :

fruit val1 val2 0 orange 15 3 1 apple 10 13 2 mango 5 5

¿Cómo consigo que Pandas me dé una suma acumulada y una columna de porcentaje solo en val1 ?

Salida deseada:

df_with_cumsum :

fruit val1 val2 cum_sum cum_perc 0 orange 15 3 15 50.00 1 apple 10 13 25 83.33 2 mango 5 5 30 100.00

Intenté df.cumsum() , pero me está dando este error:

TypeError: ufunc ''isnan'' no es compatible con los tipos de entrada, y las entradas no se pudieron forzar de forma segura a ningún tipo soportado de acuerdo con la regla de conversión '''' segura ''''


df[''cum_sum''] = df.val1.cumsum() df[''cum_perc''] = 100*df.cum_sum/df.val1.sum()

Esto agregará las columnas a df . Si desea una copia, copie df primero y luego realice estas operaciones en la copia.