构建一个生鲜食品保质期、损耗与家庭采购数量规划的商务智能示例项目,去营销化、中立化,仅用于学习与工程实践参考。
一、实际应用场景描述
在日常家庭生活中,生鲜食品采购与消耗是最常见、也最容易产生浪费的场景之一:
- 蔬菜、水果、肉类、乳制品都有不同保质期
- 采购时容易“看着新鲜就多买”
- 存储不当或计划不合理,导致过期、腐烂
- 家庭每月食材浪费率往往在 10%–20% 之间
典型场景是:
- 周末一次性采购大量叶菜,结果工作日吃不完
- 冷冻肉存放过久,口感变差甚至变质
- 牛奶、酸奶临期才发现,只能丢弃
本项目模拟 一个家庭 30 天、8 类生鲜食品的采购、消耗与损耗数据,通过 Python 进行:
- 保质期与损耗率统计
- 采购—消耗匹配分析
- 家庭采购数量优化
- 食材浪费成本测算
为普通家庭提供一个可量化、可复现的食材采购与节约框架。
二、引入痛点(Business Pain Points)
痛点 说明
采购过量 高估消耗量,低估保质期
损耗隐蔽 腐烂食材被直接丢弃
成本累积 小额浪费长期累积显著
缺乏计划 没有基于保质期的采购模型
数据缺失 家庭不做食材台账
因此需要一个:
✅ 轻量、可日常使用
✅ 基于通用编程语言(Python)
✅ 强调减少浪费而非促销
✅ 非生鲜电商或零售平台推广
的分析原型。
三、核心逻辑讲解(BI 思维模型)
1️⃣ 数据层(Data Layer)
- 维度:食品类别、日期
- 指标:
- 采购数量(kg / 件)
- 保质期(天)
- 日均消耗量
- 损耗率(0–1)
2️⃣ 指标层(Metrics Layer)
- 理论可消耗总量 = 采购量 × (保质期 / 采购周期)
- 实际损耗量 = 采购量 − 实际消耗量
- 浪费成本 = 损耗量 × 单价
3️⃣ 分析层(Analysis Layer)
- 高损耗食品识别
- 采购数量过剩诊断
- 最优采购量测算(满足消耗 + 最小损耗)
4️⃣ 应用层(Application Layer)
- 家庭采购优化清单
- 食材浪费预警
- 月度生活费节省测算
四、代码模块化设计(Python)
📁 项目结构
food_waste_bi/
├── data/
│ └── sample_food_data.py
├── analysis/
│ ├── shelf_life.py
│ ├── loss.py
│ └── planning.py
├── visualization/
│ └── charts.py
├── main.py
├── README.md
└── requirements.txt
五、核心代码示例(注释清晰)
1️⃣ 样本数据生成(data/sample_food_data.py)
"""
生成模拟家庭生鲜食品保质期与损耗数据
"""
import pandas as pd
import numpy as np
def generate_food_data(days=30):
np.random.seed(42)
foods = [
{"name": "叶菜", "shelf_life": 5, "unit_price": 6},
{"name": "根茎类", "shelf_life": 14, "unit_price": 4},
{"name": "苹果", "shelf_life": 21, "unit_price": 8},
{"name": "鸡肉", "shelf_life": 3, "unit_price": 18},
{"name": "牛肉", "shelf_life": 4, "unit_price": 40},
{"name": "鱼", "shelf_life": 2, "unit_price": 30},
{"name": "牛奶", "shelf_life": 7, "unit_price": 10},
{"name": "酸奶", "shelf_life": 10, "unit_price": 12}
]
data = []
for food in foods:
daily_consumption = np.random.uniform(0.3, 1.0)
purchase_qty = daily_consumption * food["shelf_life"] * 1.2
loss_rate = np.random.uniform(0.05, 0.25)
actual_consumption = purchase_qty * (1 - loss_rate)
data.append({
"food": food["name"],
"shelf_life": food["shelf_life"],
"purchase_qty": round(purchase_qty, 2),
"daily_consumption": round(daily_consumption, 2),
"actual_consumption": round(actual_consumption, 2),
"loss_rate": round(loss_rate, 2),
"unit_price": food["unit_price"]
})
return pd.DataFrame(data)
2️⃣ 保质期分析模块(analysis/shelf_life.py)
import pandas as pd
def shelf_life_summary(df: pd.DataFrame) -> pd.DataFrame:
"""
按食品类别统计保质期与采购量
"""
return df[["food", "shelf_life", "purchase_qty"]].sort_values("shelf_life")
3️⃣ 损耗分析模块(analysis/loss.py)
def calculate_loss_cost(df: pd.DataFrame):
"""
计算食材损耗量与浪费成本
"""
df = df.copy()
df["loss_qty"] = df["purchase_qty"] - df["actual_consumption"]
df["waste_cost"] = df["loss_qty"] * df["unit_price"]
return df
4️⃣ 采购优化模块(analysis/planning.py)
def optimal_purchase(df: pd.DataFrame):
"""
基于日均消耗与保质期计算最优采购量
"""
df = df.copy()
df["optimal_purchase"] = df["daily_consumption"] * df["shelf_life"] * 0.95
return df
5️⃣ 主程序入口(main.py)
from data.sample_food_data import generate_food_data
from analysis.shelf_life import shelf_life_summary
from analysis.loss import calculate_loss_cost
from analysis.planning import optimal_purchase
def main():
df = generate_food_data()
shelf_df = shelf_life_summary(df)
df = calculate_loss_cost(df)
df = optimal_purchase(df)
print("=== 食品保质期与采购量 ===")
print(shelf_df)
print("\n=== 食材浪费成本 ===")
print(df[["food", "loss_qty", "waste_cost"]])
print("\n=== 建议优化采购量 ===")
print(df[["food", "purchase_qty", "optimal_purchase"]])
if __name__ == "__main__":
main()
六、README 文件(简化版)
# Food Waste BI:生鲜食品保质期与采购优化示例
## 项目简介
本项目使用 Python 对家庭生鲜食品的保质期、损耗与采购数据进行分析,
通过优化采购数量,减少食材腐烂浪费,节约生活费。
## 使用环境
- Python 3.9+
- pandas
- numpy
## 运行方式
bash
pip install -r requirements.txt
python main.py
## 适用人群
- 家庭主妇 / 主夫
- 生活成本管理者
- 数据分析与 BI 学习者
## 声明
- 数据为模拟数据,仅用于教学与实验
- 不构成任何消费或品牌推荐
七、使用说明(User Guide)
1. 安装依赖
pip install pandas numpy
2. 修改
"sample_food_data.py":
- 替换为真实家庭食材数据
- 调整保质期、单价与消耗量
3. 运行
"main.py",查看:
- 各类食品保质期
- 损耗量与浪费成本
- 优化后的采购量建议
4. 可扩展方向:
- 增加库存实时管理
- 结合促销周期调整采购
- 输出月度食材浪费报告
八、核心知识点卡片(Key Concepts)
领域 知识点
食品数据 保质期、损耗率、单价
BI 分析 采购—消耗匹配、浪费测算
成本控制 最优采购量、边际损耗
家庭管理 食材台账、节约策略
软件工程 模块化、函数单一职责
九、总结(Conclusion)
通过本项目,我们展示了如何利用 Python + 商务智能方法:
- ✅ 把“买多少合适”从经验判断变成可量化的采购优化问题
- ✅ 用 保质期 + 日均消耗 减少生鲜食品浪费
- ✅ 为普通家庭提供一个理性、可复现的生活费节约框架
需要明确的是:
本项目仅为数据分析教学示例,不构成消费或营养建议。
在真实场景中,若结合家庭饮食习惯、冰箱容量与购物频率,可进一步构建更完善的智能家庭食材管理系统。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!