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

如何在Seaborn countplot中显示Pandas统计的空值计数?

在Seaborn Countplot中包含NaN值计数的方法

默认情况下,sns.countplot()会自动忽略NaN值,所以你看不到那29740个空值的计数。这里有两种简单实用的方法可以解决这个问题:

方法1:将NaN替换为明确的类别

你可以先把数据中的NaN值替换成一个像"Missing"这样的自定义类别,再绘制计数图。如果不想修改原始数据集,记得先复制一份再操作。

示例代码:

# 复制数据集避免改动原始数据
df_plot = df1.copy()
# 将NaN替换为"Missing"类别
df_plot['ViolLevel'] = df_plot['ViolLevel'].fillna('Missing')
# 绘制计数图
sns.countplot(x='ViolLevel', data=df_plot)
# 优化图表可读性
plt.title('ViolLevel Count Including Missing Values')
plt.xlabel('Violation Level')
plt.ylabel('Count')
plt.show()

方法2:用Pandas统计后绘制Barplot

另一种方式是先用Pandas的value_counts(dropna=False)统计所有值(包括NaN)的数量,再用Seaborn的barplot()可视化结果,这种方法完全不需要修改原始数据。

示例代码:

# 统计所有值的计数(包含NaN)
viol_counts = df1['ViolLevel'].value_counts(dropna=False)
# 基于统计结果绘制柱状图
sns.barplot(x=viol_counts.index, y=viol_counts.values)
# 自定义图表细节
plt.title('ViolLevel Count Including NaN Values')
plt.xlabel('Violation Level')
plt.ylabel('Count')
# 优化x轴标签显示(避免NaN显示异常)
plt.xticks(ticks=range(len(viol_counts.index)), labels=[str(x) for x in viol_counts.index])
plt.show()

两种方法都能帮你在图表中展示NaN的计数:如果需要后续分析也使用这个缺失值类别,方法1更顺手;如果不想改动原始数据,方法2会更合适。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:58:35