我有DataFrame
这样:
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'',输入无法安全地强制转换为任何支持的类型
答案 0 :(得分:78)
df['cum_sum'] = df['val1'].cumsum()
df['cum_perc'] = 100*df['cum_sum']/df['val1'].sum()
这会将列添加到df
。如果您需要副本,请先复制df
,然后在副本上执行这些操作。
答案 1 :(得分:3)
这是一个很好的答案,但写于2014年。 我只是做了一点修改,所以它可以通过编译器,结果类似于示例。
az storage blob list