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

如何基于Pandas DataFrame行的所有横向列值条件删除对应行

实现方法

首先构造示例DataFrame的参考代码如下:

import pandas as pd

df = pd.DataFrame(
    [[0,0,0], [0,1,0], [1,1,1]],
    index = ['a', 'b', 'c']
)

要实现按行总和过滤行,直接按行维度求和后做布尔索引筛选即可,推荐直接保留符合条件的行,逻辑更清晰:

# 仅保留行总和不为0的行
df = df[df.sum(axis=1) != 0]

如果更习惯先筛选要删除的行再调用drop方法删除,也可以用下面的写法:

# 筛选出行总和为0的行索引后删除
del_rows = df[df.sum(axis=1) == 0].index
df.drop(del_rows, inplace=True)

扩展说明

如果你需要的是删除所有元素全为0的行,而不是仅总和为0的行(避免出现正负值相加总和为0的误删情况),可以换成全量匹配判断:

# ~ 代表取反,仅保留不是全为0的行
df = df[~(df == 0).all(axis=1)]

所有涉及行维度的判断逻辑,只要把axis参数设为1就可以实现逐行计算,你可以根据自己的实际判断条件替换布尔筛选规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:21:01