我有一个DataFrame这样的:
DataFrame
df:
df
fruit val1 val2 0 orange 15 3 1 apple 10 13 2 mango 5 5
我如何才能让Pandas仅给我一个累积的总和和百分比列val1?
val1
所需的输出:
df_with_cumsum:
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(),但这给了我这个错误:
df.cumsum()
TypeError:输入类型不支持ufunc’isnan’,并且根据强制转换规则“ safe”,不能将输入安全地强制转换为任何受支持的类型
df['cum_sum'] = df['val1'].cumsum() df['cum_perc'] = 100*df['cum_sum']/df['val1'].sum()
这会将列添加到中df。如果要复制,df请先复制,然后再对副本执行这些操作。