为你完整设计一个网购订单消费分析系统,结合大数据与智能管理课程的思想,从场景到代码、从模块到文档,全部覆盖。
- 实际应用场景 & 痛点引入
场景
你是一名经常网购的用户,电商平台会记录你的每一笔订单(商品类别、价格、时间等)。你想分析:
- 在服饰、食品、家居三大类中,哪一类总消费最高?
- 哪一类最省钱(消费最低)?
- 不同月份各类别的消费趋势如何?
痛点
- 平台只提供简单的月度账单,无法按自定义类别统计。
- 手动分类计算费时费力,容易出错。
- 缺乏可视化,难以直观看出消费结构。
-
核心逻辑讲解
-
数据获取
- 从电商平台导出订单数据(CSV/Excel),包含字段: "order_id", "category", "amount", "date"。
-
数据清洗
- 过滤出目标类别(服饰、食品、家居)。
- 处理缺失值、异常金额。
-
数据分析
- 按类别分组,计算总金额。
- 找出消费最低的类别(最省钱)。
-
数据可视化(可选扩展)
- 柱状图展示各类别消费对比。
-
输出结果
- 打印最省钱的类别及金额。
- 保存分析结果。
-
代码实现(模块化 + 注释)
目录结构
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
使用
- 将订单数据放入
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
...
- 运行分析脚本:
bash
python analysis.py
- 查看终端输出的各类别消费金额及最省钱类别,并在
output/目录查看柱状图。
作者
全栈开发工程师 & 技术布道者
- 核心知识点卡片
知识点 说明 Pandas 数据加载 "pd.read_csv()" 读取 CSV, "to_numeric" 转换金额类型 数据过滤 "isin()" 筛选指定类别 分组聚合 "groupby().sum()" 按类别汇总金额 查找最小值 "idxmin()" 获取最小值对应的索引 Matplotlib 柱状图 "plot(kind='bar')" 绘制柱状图 模块化设计 工具函数与主逻辑分离,提高复用性
- 总结
本项目展示了如何用 Python 快速构建一个网购订单消费分析工具,结合了:
- 大数据处理思想(数据清洗、分组聚合)
- 智能管理应用(消费结构分析与决策支持)
- 全栈开发实践(模块化、文档化、可视化)
通过这个小项目,你可以:
- 掌握 Pandas 数据处理与分析的核心方法
- 学会用 Matplotlib 进行数据可视化
- 理解如何将原始数据转化为可行动的洞察
- 为后续接入数据库、Web 前端展示打下基础
如果你需要,我可以帮你生成一个示例 CSV 订单数据文件,这样你可以直接运行代码看到。 本文由AI辅助创作,如果你觉得这个工具好用,欢迎关注我!