python 模拟数据透视表案例

📅 2026/7/22 10:41:50 👁️ 阅读次数 📝 编程学习
python 模拟数据透视表案例

代码实现如下:

import pandas as pd import matplotlib.pyplot as plt # 解决Windows中文乱码 plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False # 1. 构造模拟电商订单数据 data = { "订单号": [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015], "下单时间": ["2026-01-05", "2026-01-08", "2026-02-02", "2026-02-10", "2026-03-01", "2026-03-12", "2026-01-15", "2026-02-18", "2026-03-20", "2026-01-22", "2026-02-25", "2026-03-05", "2026-01-30", "2026-02-12", "2026-03-18"], "商品品类": ["电子产品", "服饰", "食品", "电子产品", "家居", "服饰", "食品", "家居", "电子产品", "服饰", "食品", "家居", "电子产品", "服饰", "食品"], "单价": [2999, 199, 49, 1599, 269, 259, 69, 399, 4299, 129, 35, 199, 2199, 329, 59], "购买数量": [1, 2, 3, 1, 2, 1, 5, 1, 1, 3, 4, 2, 1, 1, 2], "收货地区": ["广东", "浙江", "江苏", "广东", "上海", "浙江", "江苏", "上海", "广东", "浙江", "江苏", "上海", "广东", "浙江", "江苏"] } df = pd.DataFrame(data) df["订单销售额"] = df["单价"] * df["购买数量"] df["下单时间"] = pd.to_datetime(df["下单时间"]) df["月份"] = df["下单时间"].dt.month # ===================== 2. 基础数据查看 ===================== print("===== 1. 数据前5行 =====") print(df.head()) print("\n===== 2. 数据整体信息 =====") print(df.info()) print("\n===== 3. 数值统计 =====") print(df.describe()) print("\n===== 4. 缺失值统计 =====") print(df.isnull().sum()) # ===================== 3. 核心业务指标 ===================== total_order_num = df["订单号"].nunique() total_sales = df["订单销售额"].sum() total_goods = df["购买数量"].sum() avg_customer = total_sales / total_order_num print("\n===== 5. 核心经营指标 =====") print(f"总订单数:{total_order_num}") print(f"总销售额:{total_sales} 元") print(f"商品总销量:{total_goods} 件") print(f"平均客单价:{round(avg_customer, 2)} 元") # ===================== 4. 分组分析(已修复字段名:商品品类) ===================== print("\n===== 6. 各品类销售额、销量汇总 =====") category_analysis = df.groupby("商品品类").agg( 总销售额=("订单销售额", "sum"), 总销量=("购买数量", "sum") ).sort_values("总销售额", ascending=False) print(category_analysis) print("\n===== 7. 各月份销售趋势 =====") month_sale = df.groupby("月份")["订单销售额"].sum() print(month_sale) print("\n===== 8. 各地区销售额排名 =====") area_sale = df.groupby("收货地区")["订单销售额"].sum().sort_values(ascending=False) print(area_sale) # ===================== 5. 筛选高客单订单 ===================== print("\n===== 9. 高客单爆款订单 =====") hot_order = df[df["订单销售额"] > 2000] print(hot_order[["订单号", "商品品类", "订单销售额", "收货地区"]]) # ===================== 6. 导出Excel报告 ===================== with pd.ExcelWriter("电商销售分析报告.xlsx") as writer: df.to_excel(writer, sheet_name="原始订单数据", index=False) category_analysis.to_excel(writer, sheet_name="品类分析") month_sale.to_excel(writer, sheet_name="月度销售") area_sale.to_excel(writer, sheet_name="地区销售") print("\n分析完成,已生成:电商销售分析报告.xlsx") # ===================== 7. 可视化绘图 ===================== # 月度折线图 plt.figure(figsize=(8, 5)) plt.plot(month_sale.index, month_sale.values, marker="o", color="#E74C3C", linewidth=2, markersize=8) plt.title("月度销售额趋势", fontsize=14, pad=15) plt.xlabel("月份") plt.ylabel("销售额(元)") plt.xticks([1, 2, 3], ["1月", "2月", "3月"]) plt.grid(alpha=0.3) for x, y in zip(month_sale.index, month_sale.values): plt.text(x, y + 200, f"{y}", ha="center") plt.tight_layout() plt.savefig("月度销售趋势.png", dpi=150) plt.show() # 品类饼图 plt.figure(figsize=(7, 7)) category_sale = df.groupby("商品品类")["订单销售额"].sum() colors = ["#3498DB", "#2ECC71", "#F1C40F", "#E67E22"] plt.pie(category_sale.values, labels=category_sale.index, autopct="%1.1f%%", colors=colors, startangle=90, wedgeprops={"edgecolor": "white", "linewidth": 2}) plt.title("各品类销售额占比", fontsize=14) plt.axis("equal") plt.tight_layout() plt.savefig("品类销售占比.png", dpi=150) plt.show() # 地区柱状图 plt.figure(figsize=(8, 5)) bars = plt.bar(area_sale.index, area_sale.values, width=0.5) plt.title("各地区销售额对比", fontsize=14) plt.xlabel("地区") plt.ylabel("销售额(元)") for bar in bars: h = bar.get_height() plt.text(bar.get_x()+bar.get_width()/2, h+100, f"{int(h)}", ha="center") plt.tight_layout() plt.savefig("地区销售对比.png", dpi=150) plt.show() print("图片保存完成:月度销售趋势.png、品类销售占比.png、地区销售对比.png")

电商销售数据分析完整总结

一、数据基础概况

  1. 数据源:模拟 15 条 2026 年 1–3 月电商订单,包含订单号、下单时间、商品品类、单价、购买数量、收货地区 6 个原始字段;衍生出订单销售额月份两个计算字段。
  2. 数据质量:无缺失值、无异常脏数据,数据结构规整,可直接用于统计与可视化。
  3. 基础规模:15 笔独立订单,覆盖电子产品、服饰、食品、家居 4 大品类,广东、浙江、江苏、上海 4 个收货地区。

二、核心经营指标汇总

  1. 总订单数:15 单
  2. 总销售额:14554 元
  3. 商品总销量:30 件
  4. 平均客单价:970.27 元 客单价偏高,核心原因是电子产品单价极高,拉高整体均值。

三、多维度业务分析结论

1. 品类维度(销售额贡献)

电子产品总销售额断层第一,是店铺核心营收支柱;家居、服饰次之;食品单价低、单订单金额小,营收贡献最低。

  • 优势品类:电子产品,高客单、高毛利贡献,店铺核心盈利款,应重点备货、主推引流;
  • 长尾品类:食品,走薄利多销路线,适合做搭配赠品、凑单商品提升订单件数。

2. 月度销售趋势(1–3 月)

逐月销售额呈稳步上涨趋势,店铺经营规模持续向好,市场需求逐步提升,无淡季下滑情况,整体增长健康。

3. 地区消费能力

广东地区总销售额遥遥领先,是核心消费市场;其次浙江、江苏;上海订单消费总额最低。 运营策略倾斜:广东投放更多推广资源、专属优惠活动,巩固核心客群;上海可针对性做活动拉动消费。

4. 高客单爆款订单

筛选单笔销售额>2000 元订单,全部来自电子产品品类,印证高单价数码产品是大额订单唯一来源;高价值客户集中在广东区域。

四、产出文件说明

  1. 电商销售分析报告.xlsx:多工作表存储完整数据
    • 原始订单数据:全部明细记录,可二次加工;
    • 品类分析:各品类总销售额、总销量汇总;
    • 月度销售:1–3 月月度营收;
    • 地区销售:四地销售额排名。
  2. 3 张可视化图表
    • 月度销售趋势折线图:直观展示营收增长节奏;
    • 品类销售占比饼图:一眼看清各品类营收占比结构;
    • 地区销售额柱状图:对比各区域消费体量差异。

五、运营落地建议

  1. 货品策略:加大电子产品库存供给,保证爆款不断货;食品用于搭配销售,提升单订单购买件数。
  2. 区域运营:重点深耕广东市场,投放优惠券、专场活动;针对上海、江苏推出专属活动刺激消费。
  3. 周期规划:销售逐月增长,可预判后续营收持续走高,提前规划备货、人员、推广预算。
  4. 用户运营:高价值大额客户全部购买电子产品,可对数码客户推送新品、会员福利,提升复购。

六、代码实现技术总结

  1. Pandas 完成全流程数据分析:数据构建、衍生字段、时间转换、缺失值检测、分组聚合、条件筛选、多 sheet Excel 导出;
  2. Matplotlib 实现静态可视化:折线、饼图、柱状图,支持中文显示、数值标注、高清图片本地保存;
  3. 完整闭环:模拟数据 → 清洗探查 → 指标计算 → 多维度分析 → 报表导出 + 可视化出图,是职场标准数据分析工作流。