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

Python-Pandas:列保留两位小数并删除多列和为0的行

Pandas 处理方案:四舍五入+删除全零行

完整代码实现

import pandas as pd

# 构造示例DataFrame
data = {
    'Premium': [0.0000, 5.0000, 0.0000, 1.0000],
    'Comission': [0.0000, 3.0000, 0.0000, 3.0000],
    'RVNE': [0.0000, 0.0000, 5.0000, 0.0000],
    'Incurred': [0.0017, 1.0000, 2.0000, 0.0000]
}
df = pd.DataFrame(data)

# 链式操作:先四舍五入到2位小数,再筛选行(四列和不为0)
processed_df = df.round(2).loc[lambda x: x.sum(axis=1) != 0]

print(processed_df)

输出结果

Premium  Comission  RVNE  Incurred
1      5.0        3.0   0.0       1.0
2      0.0        0.0   5.0       2.0
3      1.0        3.0   0.0       0.0

为什么这是最优高效的方法?

  • 向量化运算:round()和sum(axis=1)都是Pandas内置的向量化方法,底层基于NumPy实现,比手动逐行循环快几个数量级,尤其适合大数据量场景。
  • 链式调用:无需创建中间变量,一步完成全部处理,代码简洁且内存效率更高。
  • 精准匹配需求:先执行四舍五入,再基于处理后的列求和筛选,完全符合「删除四舍五入后四列之和为0的行」的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:53:11