You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Pandas DataFrame计算类别占比时的KeyError问题?

问题修复方案

错误原因

Severity是该DataFrame的索引名,并非数据列,所以用sv["Severity"]会触发KeyError——Pandas找不到名为Severity的列。计算占比需要以count列的总和作为分母,因为所有数值都存储在这个列中。

修复后的代码

方式1:生成单独的占比序列

sv_rt = sv['count'] / sv['count'].sum() * 100
print(sv_rt)

运行后会得到与原索引对应各层级的占比结果。

方式2:在原DataFrame中新增占比列

如果希望保留原数据结构并新增占比列,可使用assign方法:

sv = sv.assign(ratio=sv['count'] / sv['count'].sum() * 100)
print(sv)

执行后会得到包含原count列和新增ratio占比列的完整DataFrame。

补充说明

如果后续需要将索引Severity转为普通数据列,可执行:

sv = sv.reset_index()

之后就能用sv["Severity"]引用该列,但这不是计算占比的必要操作。

内容的提问来源于stack exchange,提问作者user22570245

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:52:19