pandas计算列异常值占比并新增百分比行的高效实现方法
实现代码
仅需一行pandas原生向量化操作即可完成,无冗余逻辑、无需转置,运算效率极高:
# 假设原始DataFrame变量名为df df.loc['Percentage'] = (df.loc['Outliers'] / df.sum() * 100).astype(int).astype(str) + '%'
如果你的DataFrame除了Inliers、Outliers外还有其他行,只需微调求和部分即可:
df.loc['Percentage'] = (df.loc['Outliers'] / df.loc[['Inliers','Outliers']].sum() * 100).astype(int).astype(str) + '%'
逻辑说明
- 直接通过行索引
Outliers取出异常值行的所有列数值 - 求和操作默认按列计算,自动匹配对应列的总数值
- 整个运算过程pandas自动按列对齐,无需额外编写列匹配逻辑
- 格式可以按需调整:如果需要保留n位小数,将代码中的
.astype(int)替换为.round(n)即可
内容的提问来源于stack exchange,提问作者Kami
相关产品推荐
相关产品推荐

