济源市网站建设_网站建设公司_交互流畅度_seo优化
2026/1/16 17:27:31 网站建设 项目流程

为你完整设计一个每日玩手机时长分析与沉迷检测系统,结合大数据与智能管理课程的思想,从场景到代码、从模块到文档,全部覆盖。

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

场景

你是一名关注健康与效率的人,想记录自己每天的手机使用时长(小时),并分析:

- 每周平均每天玩多久手机?

- 是否有沉迷风险(每天超过 5 小时)?

- 根据数据给出健康建议。

痛点

- 手机自带的使用统计分散,不易长期跟踪。

- 手动计算周均值和沉迷天数很麻烦。

- 缺乏自动化的健康提醒与建议。

2. 核心逻辑讲解

1. 数据获取

- 输入每日手机使用时长(CSV/Excel),字段包括:

"date"(日期)、

"usage_hours"(使用时长,单位:小时)。

2. 数据清洗

- 确保时长为数值类型,去除无效数据。

3. 统计分析

- 计算每周平均使用时长(按自然周分组)。

- 统计每天超过 5 小时的天数。

4. 沉迷判断与建议

- 如果某天 > 5 小时 → 标记为“沉迷日”。

- 根据沉迷天数给出健康建议。

5. 输出结果

- 打印每周平均时长、沉迷天数、建议。

- 可选:保存结果到 CSV。

3. 代码实现(模块化 + 注释)

目录结构

phone_usage_analysis/

├── data/

│ └── usage.csv

├── output/

├── analysis.py

├── utils.py

├── README.md

└── requirements.txt

"requirements.txt"

pandas>=1.5.0

"utils.py"(工具函数)

import pandas as pd

def load_usage_data(file_path):

"""

加载手机使用时长 CSV 文件

:param file_path: CSV 文件路径

:return: DataFrame

"""

df = pd.read_csv(file_path)

# 确保使用时长为数值类型

df['usage_hours'] = pd.to_numeric(df['usage_hours'], errors='coerce')

return df

def clean_data(df):

"""

清洗数据:删除使用时长为空的行

:param df: DataFrame

:return: 清洗后的 DataFrame

"""

return df.dropna(subset=['usage_hours'])

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

import pandas as pd

from utils import load_usage_data, clean_data

def analyze_phone_usage(file_path, addiction_threshold=5):

# 1. 加载数据

df = load_usage_data(file_path)

df = clean_data(df)

# 2. 添加星期信息

df['date'] = pd.to_datetime(df['date'])

df['week'] = df['date'].dt.isocalendar().week

# 3. 计算每周平均使用时长

weekly_avg = df.groupby('week')['usage_hours'].mean()

# 4. 判断沉迷天数

df['is_addicted'] = df['usage_hours'] > addiction_threshold

addicted_days = df['is_addicted'].sum()

# 5. 输出结果

print("每周平均手机使用时长(小时):")

for week, avg in weekly_avg.items():

print(f"第 {week} 周: {avg:.2f} 小时")

print(f"\n沉迷天数(> {addiction_threshold} 小时/天): {addicted_days} 天")

# 6. 给出建议

if addicted_days > 3:

advice = "警告:你近期手机使用时间较长,建议减少非必要使用,增加运动与线下社交。"

elif addicted_days > 0:

advice = "注意:部分天数手机使用偏多,建议合理规划时间,避免影响休息与学习工作。"

else:

advice = "恭喜!你的手机使用习惯良好,请继续保持。"

print(f"\n建议: {advice}")

# 7. 保存结果

result_df = pd.DataFrame({

'week': weekly_avg.index,

'avg_usage_hours': weekly_avg.values,

'addicted_days': [addicted_days] * len(weekly_avg)

})

result_df.to_csv('../output/usage_summary.csv', index=False)

print("\n分析结果已保存到 output/usage_summary.csv")

if __name__ == "__main__":

analyze_phone_usage('../data/usage.csv', addiction_threshold=5)

4.

"README.md"

# 手机使用时长分析与沉迷检测系统

## 功能

- 导入每日手机使用时长数据

- 统计每周平均使用时长

- 判断是否沉迷(超过5小时/天)

- 给出健康建议

- 保存结果到 CSV

## 环境依赖

- Python 3.8+

- pandas

## 安装

bash

pip install -r requirements.txt

## 使用

1. 将数据放入 `data/usage.csv`,格式如下:

date,usage_hours

2025-12-01,4.5

2025-12-02,6.2

2025-12-03,3.8

...

2. 运行分析脚本:

bash

python analysis.py

3. 查看终端输出的每周平均时长、沉迷天数和建议,并在 `output/` 目录查看保存的 CSV 文件。

## 作者

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

5. 核心知识点卡片

知识点 说明

Pandas 数据加载

"pd.read_csv()" 读取 CSV,

"to_numeric" 转换类型

数据清洗

"dropna()" 删除缺失值,保证分析准确性

时间处理

"pd.to_datetime()" 转换日期,

"dt.isocalendar().week" 获取周数

分组聚合

"groupby().mean()" 计算周均值

条件标记

"df['col'] > threshold" 标记沉迷日

数据保存

"to_csv()" 将结果保存为 CSV

模块化设计 工具函数与主逻辑分离,便于维护

6. 总结

本项目展示了如何用 Python 快速构建一个手机使用时长分析与沉迷检测工具,结合了:

- 大数据处理思想(数据清洗、分组聚合)

- 智能管理应用(健康监测与行为干预)

- 全栈开发实践(模块化、文档化、可扩展性)

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

- 掌握 Pandas 数据处理与时间序列分析的核心方法

- 学会用简单条件判断实现业务逻辑

- 理解如何将原始数据转化为可行动的洞察

- 为后续接入手机 API、Web 前端、健康管理平台打下基础

如果你需要,可以生成一个示例 CSV 手机使用时长数据文件,这样你可以直接运行代码看到效果。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询