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

如何用Python按年份统计订单总数并绘制柱状图?

解决方案:按年份统计订单总数并绘制柱状图

核心思路

你需要先通过分组统计得到每年的订单数量,再用柱状图可视化结果。以下是具体实现步骤和代码:


完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
mydata = pd.read_csv('/sales_data.csv')

# 按年份分组,统计订单总数(若ORDERNUMBER无重复,用size()更高效)
yearly_order_count = mydata.groupby('YEAR_ID')['ORDERNUMBER'].nunique().reset_index(name='订单总数')

# 绘制柱状图
plt.bar(yearly_order_count['YEAR_ID'], yearly_order_count['订单总数'], color='#3498db')

# 添加图表元素,提升可读性
plt.xlabel('年份')
plt.ylabel('订单总数')
plt.title('各年度订单数量统计')

# 可选:给每个柱子添加数值标签
for idx, val in enumerate(yearly_order_count['订单总数']):
    plt.text(yearly_order_count['YEAR_ID'].iloc[idx], val + 10, str(val), ha='center')

# 显示图表
plt.show()

关键代码说明

  1. 分组统计逻辑

    • groupby('YEAR_ID'):按年份对数据分组
    • ['ORDERNUMBER'].nunique():统计每组中唯一订单编号的数量(避免重复订单被多次计数);如果你的数据里每个ORDERNUMBER对应唯一订单,直接用mydata.groupby('YEAR_ID').size().reset_index(name='订单总数')更高效
  2. 绘图优化

    • 用plt.bar()生成柱状图(区别于你原代码的直方图hist(),直方图用于展示数值分布,柱状图才适合展示分类数据的统计结果)
    • 添加数值标签可以让读者直接看到每个年份的具体订单数,无需估算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:30:44