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

Python中如何在直方图分箱内展示DataFrame其他列的属性分布

堆叠分布直方图实现方案

你原有代码是单独对每列做值统计,没有关联F_namn和C_code的对应关系,所以无法实现堆叠效果。修改后的可运行代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 构造测试数据集
C_code = ['a', 'a', 'b', 'a', 'c', 'a', 'b', 'a']
F_namn = ['sthlm', 'norr', 'syd', 'norr', 'norr', 'sthlm', 'syd', 'norr']
D_namn = ['ff', 'rr', 'ff', 'gg', 'ff', 'rr', 'rr', 'ff']
df_test = pd.DataFrame({'C_code': C_code, 'F_namn': F_namn, 'D_namn': D_namn})

# 按地理区域和C_code取值联合统计数量
count_df = df_test.groupby(['F_namn', 'C_code']).size().unstack(fill_value=0)

# 绘制堆叠柱状图
count_df.plot.bar(stacked=True)
# 可选样式配置
plt.xlabel('地理区域(F_namn)')
plt.ylabel('计数')
plt.legend(title='C_code取值')
plt.show()

核心逻辑说明:

  • 调用groupby对F_namn、C_code两个字段联合统计,保证每个地理区域下不同C_code的数量对应关系正确
  • unstack操作会将C_code的a/b/c三个取值转为DataFrame的列,绘制时每列对应堆叠柱的一个区块,开启stacked=True参数即可实现预期堆叠效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:00