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

如何为pandas DataFrame中每个唯一ID绘制对应直方图

错误原因

  • plt.hist 接口的作用是对输入的原始样本数据做频数分布统计,你的数据集已经提前聚合好了每个size对应的Count统计值,不需要再做二次频数统计,直接调用plt.hist不符合使用场景。
  • 原代码中直接将size、Count两列传入plt.hist,接口会将两列都识别为待统计的原始样本,输出两个无关的分布统计结果,和需求不匹配。

解决代码

推荐用更适配场景的plt.bar实现,直接映射size到x轴、Count到柱高即可,代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 你的DataFrame构造逻辑
df = pd.DataFrame(data)

# 按ID分组遍历
for group_id, group_df in df.groupby('ID'):
    plt.bar(x=group_df['size'], height=group_df['Count'])
    # 可选配置:添加标题和轴标签
    plt.title(f'ID {group_id} 分布统计')
    plt.xlabel('size')
    plt.ylabel('Count')
    plt.show()

如果你一定要用plt.hist实现,可以通过weights参数传入Count作为权重,代码如下:

for group_id, group_df in df.groupby('ID'):
    plt.hist(x=group_df['size'], weights=group_df['Count'], bins=len(group_df['size']))
    plt.title(f'ID {group_id} 分布统计')
    plt.xlabel('size')
    plt.ylabel('Count')
    plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:54:04