小编典典

列上的总和和百分比?

python

我有一个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”,不能将输入安全地强制转换为任何受支持的类型


阅读 217

收藏
2020-12-20

共1个答案

小编典典

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

这会将列添加到中df。如果要复制,df请先复制,然后再对副本执行这些操作。

2020-12-20