Pandas DataFrame 查看单列info及遍历统计列唯一值、缺失值的方法
单列查看指定列info的Pythonic实现
pandas无单列专用的info快捷调用,可通过原生接口零冗余实现目标效果:
- 抽取目标列生成独立Series直接调用
info()方法,输出的列类型、非空值规模、内存占用信息与全量df.info()中对应列的内容完全一致,例如查看列名为age的列:df_train['age'].info() - 如需保留DataFrame的展示结构,可用双中括号切片生成单列DataFrame后调用info接口:
df_train[['age']].info()
全列批量统计唯一值数、缺失值规模的优化方案
你提供的初始代码未填充缺失值的计算逻辑,可根据使用场景选择对应实现:
逐行对齐打印的兼容版本
保留原有排版逻辑,仅补全缺失值计算,即可实现预期输出:
print("Unique Values & Missing Values Count:") for col in df_train.columns: unique_cnt = df_train[col].nunique() missing_cnt = df_train[col].isna().sum() print(f'{col:<25}: {unique_cnt} unique values. Missing values: {missing_cnt}')
无循环向量化的最优Pythonic实现
不依赖手写Python层面的for循环,直接调用pandas批量聚合接口一次性计算全列统计值,数据量越大时相比逐列循环的效率优势越明显,扩展性更强:
# 一次性聚合生成全列统计结果 col_stat = pd.DataFrame({ 'dtype': df_train.dtypes, 'unique_count': df_train.nunique(), 'missing_count': df_train.isna().sum() }) # 打印结构化统计结果 print(col_stat)
补充说明:该实现基于pandas底层向量化运算,无Python循环的性能损耗。后续若需新增统计维度(如缺失值占比、唯一值占比、数值列均值等),只需在构造统计结果的字典中新增对应计算列即可,无需调整整体逻辑。
内容的提问来源于stack exchange,提问作者unaied
相关产品推荐
相关产品推荐

