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

如何在Pandas DataFrame中绘制各列空值数量并过滤空值为0的列

正确实现代码

你不需要单独切片原DataFrame,直接对空值计数结果做过滤后绘图即可:

import matplotlib.pyplot as plt

# 写法1:链式调用直接过滤
df.isnull().sum()[lambda cnt: cnt > 0].plot.bar()

# 写法2:拆分逻辑更易读
# null_cnt = df.isnull().sum()
# null_cnt[null_cnt > 0].plot.bar()

# 可选优化:如果过滤后剩余列还是较多,调整x轴标签角度避免重叠
plt.xticks(rotation=45, ha='right')
plt.show()

原代码错误原因

你之前写的df_null = df.loc[: ,df.isnull().sum() > 0]只是筛选出了存在空值的列的原始数据,直接调用plot()默认绘制的是各列原始数值的折线图,不是空值计数的柱状图,因此不符合需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:27:04