Pandas DataFrame每行缺失值统计及字段缺失占比计算咨询
解决Pandas中每行缺失值统计与字段缺失占比计算问题
嘿,我来帮你搞定这两个需求!你提到的df.isnull().sum(axis=1)其实就是统计每行NaN数量的正确方法,可能你需要把它整合到原数据里更直观?另外字段缺失占比的计算也很直接,我给你一步步拆解:
一、统计每行的NaN数量
- 如果你想把结果直接加到原DataFrame里,方便后续分析,只需要一行代码:
这样就会新增一列,清晰显示每一行有多少个缺失值。df['每行缺失值个数'] = df.isnull().sum(axis=1) - 要是你只是临时查看结果,不需要修改原数据,直接运行:
它会返回一个Series,索引对应行号,值就是该行的NaN数量。print(df.isnull().sum(axis=1))
二、计算各字段的缺失占比
要得到每个字段(比如眼睛信息、身高信息)的缺失百分比,我们需要先统计每列的缺失数,再除以总行数转成百分比:
- 完整的代码示例,还能生成一个整洁的汇总表:
import pandas as pd # 统计每列的缺失值数量 col_missing_counts = df.isnull().sum() # 计算缺失占比(保留两位小数) col_missing_ratios = (col_missing_counts / len(df)) * 100 col_missing_ratios = col_missing_ratios.round(2) # 合并成汇总DataFrame,方便查看 missing_summary = pd.DataFrame({ '缺失值数量': col_missing_counts, '缺失占比(%)': col_missing_ratios }) # 打印结果,也可以用missing_summary.head()查看前几行 print(missing_summary) - 如果你想让结果更直观,比如给百分比加上百分号,可以用这个小技巧:
missing_summary['缺失占比(%)'] = missing_summary['缺失占比(%)'].apply(lambda x: f"{x}%")
小提示
虽然你的数据有数百列,但这些操作都是Pandas的内置优化方法,处理50行的数据集完全没有性能问题,放心用就行~
内容的提问来源于stack exchange,提问作者Josef
相关产品推荐
相关产品推荐

