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

如何使用Python基于pandas DataFrame绘制0与1计数对比柱状图

绘制各列0/1取值数量分组柱状图的方法

首先导入所需依赖库:

import pandas as pd
import matplotlib.pyplot as plt

你提供的示例DataFrame构造代码如下:

df = pd.DataFrame(dict(
    A=[1, 0, 0, 1],
    B=[0, 1, 1, 1],
    C=[1, 0, 0, 0]
))

方法1:x轴为列名,每列对应0、1两个柱子(和示例效果一致)

可以直接用seaborn的countplot自动统计计数并绘图,步骤最简单:

  1. 如果未安装seaborn,先执行pip install seaborn完成安装
  2. 转换数据格式后绘图:
import seaborn as sns

# 转换为长表格式,适配seaborn绘图入参要求
df_long = df.melt(var_name='列名', value_name='取值')

# 绘制分组柱状图,自动统计各取值的出现次数
sns.countplot(data=df_long, x='列名', hue='取值')

# 可按需添加图表标注
plt.ylabel('出现次数')
plt.title('各列0/1取值数量分布')

plt.show()

方法2:x轴为取值,每个取值对应各列的柱子

如果需要按0、1取值分组对比各列的数量,可以直接用pandas内置的绘图接口:

# 先统计每列0、1的出现次数
count_df = df.apply(pd.Series.value_counts)

# 绘制柱状图
count_df.plot(kind='bar', figsize=(6,4))

# 调整样式
plt.xticks(rotation=0)
plt.xlabel('取值')
plt.ylabel('出现次数')
plt.legend(title='列名')

plt.show()

内容的提问来源于stack exchange,提问作者Adler Müller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:24:00