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

如何修正Pandas绘图代码,按周展示Units总和与单位成本?

按周聚合并可视化Units总和与单位成本

原始数据

Units Cost    Year Week Category
20224 100000  2023 24   Apple
30114 150000  2024 24   Orange
35000 175000  2023 15   Orange
10000 200000  2023 14   Apple

需求说明

需要按周展示Units总和与单位成本,使用Pandas和Matplotlib绘制柱状图/散点图。

原代码问题

原代码通过df['Year'].value_counts()统计的是Year的出现次数,并非Units的总和,无法满足需求。

解决方案

步骤1:数据聚合

先按Year和Week分组,计算每组的Units总和、Cost总和,再推导单位成本:

import pandas as pd
import matplotlib.pyplot as plt

# 构建数据框
data = {
    'Units': [20224, 30114, 35000, 10000],
    'Cost': [100000, 150000, 175000, 200000],
    'Year': [2023, 2024, 2023, 2023],
    'Week': [24, 24, 15, 14],
    'Category': ['Apple', 'Orange', 'Orange', 'Apple']
}
df = pd.DataFrame(data)

# 分组聚合计算
weekly_agg = df.groupby(['Year', 'Week']).agg(
    Total_Units=('Units', 'sum'),
    Total_Cost=('Cost', 'sum')
).reset_index()
# 计算单位成本
weekly_agg['Unit_Cost'] = weekly_agg['Total_Cost'] / weekly_agg['Total_Units']

步骤2:可视化展示

分别绘制Units总和的柱状图和单位成本的散点图:

plt.figure(figsize=(12, 6))

# 左侧:Units总和柱状图
ax1 = plt.subplot(1, 2, 1)
weekly_agg.plot(x='Week', y='Total_Units', kind='bar', ax=ax1, color='cornflowerblue')
ax1.set_title('每周Units总和')
ax1.set_xlabel('周(年-周)')
ax1.set_ylabel('Units总和')
# 自定义x轴标签为「年-周」格式
ax1.set_xticklabels([f"{y}-{w}" for y, w in zip(weekly_agg['Year'], weekly_agg['Week'])], rotation=45)

# 右侧:单位成本散点图
ax2 = plt.subplot(1, 2, 2)
weekly_agg.plot(x='Week', y='Unit_Cost', kind='scatter', ax=ax2, color='darkorange', s=120)
ax2.set_title('每周单位成本')
ax2.set_xlabel('周(年-周)')
ax2.set_ylabel('单位成本')
ax2.set_xticklabels([f"{y}-{w}" for y, w in zip(weekly_agg['Year'], weekly_agg['Week'])], rotation=45)

plt.tight_layout()
plt.show()

代码说明

  • groupby(['Year', 'Week'])确保按「年-周」维度分组,避免不同年份的同周数据混淆
  • agg()方法指定对Units和Cost求和,生成Total_Units和Total_Cost字段
  • 单位成本通过总成本除以总Units计算,反映每周的平均单位成本
  • 可视化时自定义x轴标签为「年-周」,更清晰展示时间维度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:56:19