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

如何在Python中基于pandas crosstab结果仅绘制1值占比的柱状图

pandas仅提取crosstab中1值结果绘制柱状图的方法

直接在你现有统计逻辑的基础上,提取1对应的列再调用绘图接口即可,操作步骤如下:

  • 首先将你统计得到的交叉表结果赋值给变量方便调用:
import pandas as pd
# 你的原有统计逻辑,赋值给ct变量
ct = pd.crosstab(df['item'], df['values'], normalize='index').mul(100).sort_values(by=1, ascending=False)
  • 提取1值对应列,直接绘制柱状图:
    pandas的crosstab输出结果为DataFrame结构,列名就是原values字段的取值(0、1),直接取列名为1的序列绘图即可,无需额外过滤0值:
import matplotlib.pyplot as plt

# 仅提取values=1的占比数据绘制柱状图,可自行调整样式参数
ct[1].plot(
    kind='bar',
    figsize=(10, 6),
    title='各item对应values=1的占比(%)',
    xlabel='item分类',
    ylabel='占比百分比',
    rot=45, # 旋转x轴标签避免重叠
    color='#1f77b4'
)
plt.tight_layout() # 自动调整布局避免标签截断
plt.show()

注意:如果你的values字段存储的是字符串格式的"0""1",将提取列的代码改为ct["1"]即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:39:03