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

如何在Pandas中正确实现多列数据的条件过滤?

多列批量过滤0值的实现方案

你可以直接通过pandas的按行布尔判断实现一次性过滤,不需要逐列操作,也不需要用iloc修改值,具体实现如下:

import pandas as pd

# 读取本地数据集文件
df = pd.read_csv("你的本地数据集路径.csv")

# 提取除Outcome外的所有特征列名
feature_cols = df.columns.drop("Outcome")
# 生成行掩码:只有当前行所有特征列都没有0值时才为True
row_mask = (df[feature_cols] != 0).all(axis=1)
# 过滤得到符合要求的结果
filtered_df = df[row_mask]

常见结果不一致原因说明

你之前多列过滤得到不同行数,基本是逻辑判断用错导致的:

  • 如果用any(axis=1)或者|(或)逻辑,规则变为只要有一列不为0就保留,会得到行数更多的652条结果
  • 用all(axis=1)或者&(且)逻辑,规则才是你需要的所有列都不为0才保留,最终得到429条结果,符合过滤要求

你可以用下面的代码验证过滤结果是否正确:

# 统计过滤后特征列的0值总数,返回全0则代表过滤成功
print(filtered_df[feature_cols].isin([0]).sum())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:24:04