我有_1239253这样的:
df
:
fruit val1 val2
0 orange 15 3
1 apple 10 13
2 mango 5 5
如何让Pandas仅给出 val1
的累积金额和百分比列?
期望的输出:
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
我试过 df.cumsum()
,但它给了我这个错误:
TypeError:输入类型不支持ufunc'isnan',根据强制转换规则''safe',输入无法安全地强制转换为任何支持的类型
2 回答
这会将列添加到
df
. 如果需要副本,请先复制df
,然后在副本上执行这些操作 .这是一个很好的答案,但写在2014年 . 我只是修改了一点,所以它可以通过编译器,看起来与示例相同 .
df['cum_sum'] = df["val1"].cumsum() df['cum_perc'] = rount(100*df.cum_sum/df["val1"].sum(),2)