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.