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

Pandas DataFrame如何筛选多列至少存在一个非空值的行

Pandas 行筛选实现方案

核心代码

假设你的原始DataFrame命名为df,直接执行以下代码即可得到筛选后的结果:

import pandas as pd

# 指定需要检查非空值的列
check_columns = ["column A", "column B", "column C"]
# 筛选:指定列中至少存在1个非空值的行
df_filtered = df[df[check_columns].notna().any(axis=1)]

逻辑说明

  • df[check_columns].notna():将指定3列的非空值映射为True,空值(NaN/NA)映射为False,返回布尔类型的DataFrame
  • any(axis=1):按行判断布尔值,只要该行存在至少1个True就返回True,所有列都为空则返回False
  • 用返回的布尔序列对原DataFrame做索引,即可保留符合要求的行,剔除三列全空的行

用你提供的示例输入运行,会自动剔除ID为03、05的三列全空行,输出结果和预期完全一致。

特殊情况兼容

如果你的表中空白是空字符串而非Pandas默认的空值类型,需要先做一步替换再执行筛选:

# 先把所有空字符串替换为Pandas可识别的空值
df = df.replace("", pd.NA)
# 再执行上文的筛选逻辑
df_filtered = df[df[check_columns].notna().any(axis=1)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:27:00