首页 文章

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

提问于
浏览
34

我有_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 回答

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

    这会将列添加到 df . 如果需要副本,请先复制 df ,然后在副本上执行这些操作 .

  • 71

    这是一个很好的答案,但写在2014年 . 我只是修改了一点,所以它可以通过编译器,看起来与示例相同 .

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

相关问题