如何用Python Pandas生成含无NaN/全NaN列的指定字典?
实现方案
直接用Pandas的缺失值检测方法就能搞定,核心逻辑是通过判断每列的NaN分布情况来筛选列名:
import pandas as pd def get_nan_column_info(df): # 筛选无NaN的列:该列NaN数量为0 no_nan_cols = df.columns[df.isna().sum() == 0].tolist() # 筛选全为NaN的列:该列所有值都是NaN all_nan_cols = df.columns[df.isna().all()].tolist() return { "Columns without nans": no_nan_cols, "Columns with all nans": all_nan_cols }
代码说明
df.isna():生成和原DataFrame形状一致的布尔矩阵,NaN位置为True,其余为Falsedf.isna().sum():按列统计NaN的数量,无NaN的列求和结果为0df.isna().all():按列判断是否所有值都是NaN,返回布尔Series.tolist():把筛选后的列名转为列表,没有符合条件的列时会自动返回空列表
示例用法
假设你有这样的数据集:
data = { "A": [1, 2, 3], "B": [None, None, None], "C": [4, None, 6] } df = pd.DataFrame(data) result = get_nan_column_info(df) print(result)
输出结果:
{ "Columns without nans": ["A"], "Columns with all nans": ["B"] }
内容的提问来源于stack exchange,提问作者Mike Zhao
相关产品推荐
相关产品推荐

