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

如何筛选Pandas DataFrame中含最少NaN值、最多有效值的列

实现方法

你可以通过统计各列NaN数量后取最小值对应列的方式实现需求,完整可运行代码如下:

import pandas as pd
import numpy as np

# 构造示例DataFrame
df = pd.DataFrame({"A1":[np.NaN,1,0,0,np.NaN,0,1,np.NaN,0,0,0,1],
                   "A2":[0,1,np.NaN,0,1,np.NaN,1,0,np.NaN,0,0,1],
                   "A3":[0,1,np.NaN,0,1,0,1,0,0,0,0,2]})

# 统计每列NaN的总数量
col_nan_count = df.isna().sum()
# 取NaN数量最少的第一个列名
target_col = col_nan_count.idxmin()
# 生成仅包含该列的数据集
subset_df = df[[target_col]]

print(subset_df)

代码说明

  • df.isna().sum()会逐列统计NaN的个数,返回列名对应NaN数量的Series结构
  • idxmin()方法会返回最小值对应的第一个索引,刚好符合多列NaN数量相同时取最先出现列的要求,你给出的示例运行后返回的目标列就是A3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:18:04