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

Python pandas如何返回无缺失值列 dropna执行后仅显示索引列如何解决

pandas筛选无缺失值列解决方案

你当前代码中dropna使用的how='all'参数仅会删除整列全为缺失值的列,和「筛选列内无任何缺失值」的需求不匹配,无法得到预期结果。

解决方法1:修改dropna参数

将how参数调整为any,只要列内存在任意一个缺失值就删除该列,最终保留的就是完全无缺失值的列:

import pandas as pd
df = pd.util.testing.makeMissingDataframe().reset_index()
df = df.dropna(axis='columns', how='any')
df.head()

解决方法2:布尔索引筛选

逻辑更直观清晰,可读性更高:

import pandas as pd
df = pd.util.testing.makeMissingDataframe().reset_index()
# df.notna().all() 会逐列判断是否所有值都非缺失,返回布尔序列
df = df.loc[:, df.notna().all()]
df.head()

测试结果说明

你用到的pd.util.testing.makeMissingDataframe()是pandas官方的测试数据生成方法,默认生成的所有数值列都会包含至少1个缺失值,因此测试时运行上述代码后只会剩下reset_index()生成的索引列,属于测试数据的特性,替换为你的真实业务数据即可正常筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:18:04