专栏的累计金额和百分比?

时间:2014-01-07 06:11:05

标签: python pandas dataframe cumulative-sum

我有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'',输入无法安全地强制转换为任何支持的类型

2 个答案:

答案 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