编程统计手机话费流量套餐消费数据,匹配个人使用习惯,更换最优套餐,减少大众每月通讯多余花费。
构建一个手机话费、流量套餐消费统计与最优套餐匹配分析的商务智能示例项目,去营销化、中立化,仅用于学习与工程实践参考。
一、实际应用场景描述
在几乎所有家庭的月度固定开支中,手机话费都是一项长期、稳定存在的支出:
- 很多人多年使用同一套餐,从未仔细核对
- 运营商频繁推出新套餐,但用户缺乏对比工具
- 实际使用习惯(通话时长、流量、短信)与套餐不匹配
- 结果是:要么流量不够用超支,要么套餐资源大量浪费
典型场景是:
- 某人每月套餐费 128 元,含 20GB 流量
- 实际月均只用 8GB,却一直支付高资费
- 另一人 39 元套餐,经常流量超支,额外付费
本项目模拟 20 位用户、6 个月的真实使用数据,通过 Python 进行:
- 话费与流量消费统计
- 套餐资源利用率分析
- 个人使用习惯画像
- 最优套餐匹配与节省潜力测算
为普通用户提供一个可量化、可复现的通讯费用优化框架。
二、引入痛点(Business Pain Points)
痛点 说明
套餐固化 多年不换,错过更优方案
资源错配 流量剩太多或完全不够
资费不透明 附加业务不知不觉扣费
选择困难 套餐种类繁多,难以比较
缺乏工具 普通用户不会做数据对比
因此需要一个:
✅ 轻量、可个人使用
✅ 基于通用编程语言(Python)
✅ 强调使用习惯匹配
✅ 非运营商或渠道推广
的分析原型。
三、核心逻辑讲解(BI 思维模型)
1️⃣ 数据层(Data Layer)
- 维度:用户、月份
- 指标:
- 月租费(元)
- 通话时长(分钟)
- 流量使用(GB)
- 短信条数
2️⃣ 指标层(Metrics Layer)
- 套餐资源利用率(实际使用 / 套餐包含)
- 超额费用占比
- 单位资源成本(元 / GB、元 / 分钟)
3️⃣ 分析层(Analysis Layer)
- 使用习惯聚类(低流量 / 高流量 / 均衡型)
- 套餐匹配度评分
- 最优套餐推荐
4️⃣ 应用层(Application Layer)
- 个人套餐优化建议
- 年度节省金额测算
- 通讯消费结构报告
四、代码模块化设计(Python)
📁 项目结构
mobile_plan_bi/
├── data/
│ └── sample_usage_data.py
├── analysis/
│ ├── usage.py
│ ├── matching.py
│ └── optimization.py
├── visualization/
│ └── charts.py
├── main.py
├── README.md
└── requirements.txt
五、核心代码示例(注释清晰)
1️⃣ 样本数据生成(data/sample_usage_data.py)
"""
生成模拟用户手机话费与流量使用数据
"""
import pandas as pd
import numpy as np
def generate_usage_data(users=20, months=6):
np.random.seed(42)
data = []
for user_id in range(1, users + 1):
plan_fee = np.random.choice([39, 59, 99, 129, 199])
plan_data = np.random.choice([5, 10, 20, 40, 60])
for month in range(1, months + 1):
usage_data = max(0, plan_data * np.random.uniform(0.4, 1.2))
usage_call = np.random.randint(50, 500)
sms = np.random.randint(0, 30)
extra_fee = 0
if usage_data > plan_data:
extra_fee = (usage_data - plan_data) * 5
data.append({
"user_id": user_id,
"month": month,
"plan_fee": plan_fee,
"plan_data": plan_data,
"usage_data": round(usage_data, 2),
"usage_call": usage_call,
"sms": sms,
"extra_fee": extra_fee
})
return pd.DataFrame(data)
2️⃣ 使用习惯分析(analysis/usage.py)
import pandas as pd
def usage_profile(df: pd.DataFrame) -> pd.DataFrame:
"""
统计每位用户的平均使用习惯
"""
return df.groupby("user_id").agg(
avg_data=("usage_data", "mean"),
avg_call=("usage_call", "mean"),
avg_total_fee=("plan_fee", "mean")
).reset_index()
3️⃣ 套餐匹配度(analysis/matching.py)
def plan_match_score(df: pd.DataFrame):
"""
套餐资源利用率评分
"""
df = df.copy()
df["data_utilization"] = df["usage_data"] / df["plan_data"]
df["match_score"] = 1 - abs(0.8 - df["data_utilization"])
return df
4️⃣ 最优套餐推荐(analysis/optimization.py)
def recommend_plan(profile: pd.DataFrame):
"""
根据用户习惯推荐更优套餐
"""
def best_plan(row):
if row["avg_data"] < 8:
return "39元套餐"
elif row["avg_data"] < 20:
return "59元套餐"
else:
return "99元套餐"
profile["recommended_plan"] = profile.apply(best_plan, axis=1)
return profile
5️⃣ 主程序入口(main.py)
from data.sample_usage_data import generate_usage_data
from analysis.usage import usage_profile
from analysis.matching import plan_match_score
from analysis.optimization import recommend_plan
def main():
df = generate_usage_data()
profile = usage_profile(df)
df = plan_match_score(df)
profile = recommend_plan(profile)
print("=== 用户使用习惯与套餐推荐 ===")
print(profile[["user_id", "avg_data", "avg_call", "recommended_plan"]])
if __name__ == "__main__":
main()
六、README 文件(简化版)
# Mobile Plan 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_usage_data.py":
- 替换为真实账单数据
- 增加 Wi-Fi 使用比例等维度
3. 运行
"main.py",查看:
- 个人使用习惯
- 套餐匹配度
- 最优套餐建议
4. 可扩展方向:
- 接入运营商账单 CSV
- 增加家庭套餐优化
- 输出年度节省报告
八、核心知识点卡片(Key Concepts)
领域 知识点
通讯数据 流量、通话、月租、超额费
BI 分析 使用习惯画像、匹配度评分
成本优化 资源利用率、最优替代
个人财务 固定支出削减
软件工程 模块化、函数单一职责
九、总结(Conclusion)
通过本项目,我们展示了如何利用 Python + 商务智能方法:
- ✅ 把“套餐合不合适”从感觉判断变成可量化的匹配问题
- ✅ 用 资源利用率 + 使用习惯 找到更优方案
- ✅ 为普通用户提供一个理性、可复现的通讯费用优化框架
需要明确的是:
本项目仅为数据分析教学示例,不构成任何运营商或套餐推荐。
在真实场景中,若结合长期账单、家庭共享需求与网络质量,可进一步构建个人与家庭通讯成本管理系统。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!
