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

如何使用Python提取CSV指定列并基于门店维度绘制沃尔玛销售图表

门店维度销售图表实现方案

你现有的代码已经完成了按门店拆分数据集的逻辑,后续可以直接基于拆分后的数据集绘制趋势图,以下是两种常用的实现方式:

1. 基础代码修正

你现有代码开头的for weekly sales against Date是注释内容,需要添加#修正为合法注释,避免运行报错。

2. 单图多折线展示所有门店销售趋势

适合整体对比不同门店的销售额差异:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%matplotlib inline
# 可选配置:解决图表中文显示乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 你已有的拆分逻辑
a = []
for stn in range(1,46):
    a.append(walmart[walmart.Store == stn])

# 绘图逻辑
plt.figure(figsize=(16,9))
for idx, store_data in enumerate(a):
    # 按日期排序避免折线错乱
    sorted_data = store_data.sort_values('Date')
    plt.plot(sorted_data['Date'], sorted_data['Weekly_Sales'], label=f'门店{idx+1}')

plt.title('各门店周销售额趋势对比')
plt.xlabel('日期')
plt.ylabel('周销售额')
# 图例放在画布外避免遮挡数据
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()

3. 分面绘制单门店独立趋势图

适合查看单个门店的销售波动规律,避免多折线叠加过于拥挤:

# 用groupby替代手动循环拆分,代码更简洁
plt.figure(figsize=(25,30))
# 45家门店分为9行5列排布
for store_id, store_data in walmart.groupby('Store'):
    plt.subplot(9,5,store_id)
    sorted_data = store_data.sort_values('Date')
    plt.plot(sorted_data['Date'], sorted_data['Weekly_Sales'], color='#1f77b4')
    plt.title(f'门店{store_id}周销售额趋势')
    plt.xticks(rotation=45)

plt.tight_layout()
plt.show()

拓展优化建议

  • 若需要突出节假日销售特征,可以基于Holiday_Flag字段在对应日期位置添加高亮标记
  • 若需要对比不同门店的销售额分布区间,可以改用箱线图绘制,更直观展示中位数、极值等统计特征

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:54:05