导入网购订单数据,分类统计服饰,食品,家居类的消费金额,输出最省钱的消费品类。

15 阅读4分钟

为你完整设计一个网购订单消费分析系统,结合大数据与智能管理课程的思想,从场景到代码、从模块到文档,全部覆盖。

  1. 实际应用场景 & 痛点引入

场景

你是一名经常网购的用户,电商平台会记录你的每一笔订单(商品类别、价格、时间等)。你想分析:

  • 在服饰、食品、家居三大类中,哪一类总消费最高?
  • 哪一类最省钱(消费最低)?
  • 不同月份各类别的消费趋势如何?

痛点

  • 平台只提供简单的月度账单,无法按自定义类别统计。
  • 手动分类计算费时费力,容易出错。
  • 缺乏可视化,难以直观看出消费结构。
  1. 核心逻辑讲解

  2. 数据获取

    • 从电商平台导出订单数据(CSV/Excel),包含字段: "order_id", "category", "amount", "date"。
  3. 数据清洗

    • 过滤出目标类别(服饰、食品、家居)。
    • 处理缺失值、异常金额。
  4. 数据分析

    • 按类别分组,计算总金额。
    • 找出消费最低的类别(最省钱)。
  5. 数据可视化(可选扩展)

    • 柱状图展示各类别消费对比。
  6. 输出结果

    • 打印最省钱的类别及金额。
    • 保存分析结果。
  7. 代码实现(模块化 + 注释)

目录结构

shopping_analysis/ ├── data/ │ └── orders.csv ├── output/ ├── analysis.py ├── utils.py ├── README.md └── requirements.txt

"requirements.txt"

pandas>=1.5.0 matplotlib>=3.6.0

"utils.py"(工具函数)

import pandas as pd

def load_order_data(file_path): """ 加载订单 CSV 文件 :param file_path: CSV 文件路径 :return: DataFrame """ df = pd.read_csv(file_path) # 确保金额为数值类型 df['amount'] = pd.to_numeric(df['amount'], errors='coerce') return df

def filter_categories(df, categories): """ 过滤指定类别的数据 :param df: DataFrame :param categories: 类别列表 :return: 过滤后的 DataFrame """ return df[df['category'].isin(categories)]

def clean_data(df): """ 清洗数据:删除缺失值 :param df: DataFrame :return: 清洗后的 DataFrame """ return df.dropna()

"analysis.py"(主分析逻辑)

import pandas as pd from utils import load_order_data, filter_categories, clean_data

def analyze_shopping(file_path): # 1. 定义目标类别 target_categories = ['服饰', '食品', '家居']

# 2. 加载数据
df = load_order_data(file_path)
df = clean_data(df)

# 3. 过滤目标类别
df_filtered = filter_categories(df, target_categories)

# 4. 按类别分组统计消费金额
category_sum = df_filtered.groupby('category')['amount'].sum()

# 5. 找出最省钱的类别(金额最小)
cheapest_category = category_sum.idxmin()
cheapest_amount = category_sum.min()

print("各类别消费总额:")
for cat, amt in category_sum.items():
    print(f"{cat}: {amt:.2f} 元")

print(f"\n最省钱的消费品类: {cheapest_category} ({cheapest_amount:.2f} 元)")

# 6. 可视化(可选)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8, 6))
category_sum.plot(kind='bar', color=['skyblue', 'lightgreen', 'salmon'])
plt.title('网购订单消费类别对比')
plt.ylabel('消费金额(元)')
plt.xlabel('类别')
plt.xticks(rotation=0)
plt.tight_layout()
plt.savefig('../output/category_bar_chart.png')
plt.show()

if name == "main": analyze_shopping('../data/orders.csv')

"README.md"

网购订单消费分析系统

功能

  • 导入网购订单数据(CSV)
  • 分类统计服饰、食品、家居的消费金额
  • 输出最省钱的消费品类
  • 生成柱状图可视化

环境依赖

  • Python 3.8+
  • pandas
  • matplotlib

安装

bash

pip install -r requirements.txt

使用

  1. 将订单数据放入 data/orders.csv,格式如下:

order_id,category,amount,date

1,服饰,199.00,2025-10-01

2,食品,45.50,2025-10-02

3,家居,299.00,2025-10-03

...

  1. 运行分析脚本:

bash

python analysis.py

  1. 查看终端输出的各类别消费金额及最省钱类别,并在 output/ 目录查看柱状图。

作者

全栈开发工程师 & 技术布道者

  1. 核心知识点卡片

知识点 说明 Pandas 数据加载 "pd.read_csv()" 读取 CSV, "to_numeric" 转换金额类型 数据过滤 "isin()" 筛选指定类别 分组聚合 "groupby().sum()" 按类别汇总金额 查找最小值 "idxmin()" 获取最小值对应的索引 Matplotlib 柱状图 "plot(kind='bar')" 绘制柱状图 模块化设计 工具函数与主逻辑分离,提高复用性

  1. 总结

本项目展示了如何用 Python 快速构建一个网购订单消费分析工具,结合了:

  • 大数据处理思想(数据清洗、分组聚合)
  • 智能管理应用(消费结构分析与决策支持)
  • 全栈开发实践(模块化、文档化、可视化)

通过这个小项目,你可以:

  • 掌握 Pandas 数据处理与分析的核心方法
  • 学会用 Matplotlib 进行数据可视化
  • 理解如何将原始数据转化为可行动的洞察
  • 为后续接入数据库、Web 前端展示打下基础

如果你需要,我可以帮你生成一个示例 CSV 订单数据文件,这样你可以直接运行代码看到。 本文由AI辅助创作,如果你觉得这个工具好用,欢迎关注我!