如何在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
相关产品推荐
相关产品推荐

