news 2026/4/18 13:53:11

收集自己的每日玩手机时长(小时),统计每周平均时长,判断是否沉迷(超过5小时/天),并给出建议。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收集自己的每日玩手机时长(小时),统计每周平均时长,判断是否沉迷(超过5小时/天),并给出建议。

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

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高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 12:26:42

表驱动法:告别 if-else(案例:查月份天数、成绩分级)

把「输入→输出」的对应关系做成一张 “表”&#xff08;数组 / 哈希表都行&#xff09;&#xff0c;不用写一堆条件判断&#xff0c;直接拿输入当索引去表里查结果#include<stdio.h>#define MONTH_COUNT 12 #define GRADE_COUNT 11int is_leap_year(int year); int get_…

作者头像 李华
网站建设 2026/4/18 8:28:39

厨艺交流平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着互联网技术的快速发展&#xff0c;人们对饮食文化的关注度逐渐提升&#xff0c;厨艺交流成为热门话题。传统的线下交流方式受限于时间和空间&#xff0c;难以满足用户多样化的需求。在线厨艺交流平台应运而生&#xff0c;为用户提供便捷的菜谱分享、烹饪技巧讨论以及美…

作者头像 李华
网站建设 2026/4/17 12:53:09

基于django 的人工智能研讨社区系统

目录基于Django的人工智能研讨社区系统关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;基于Django的人工智能研讨社区系统 该系统是一个专为人工智能领域研究者、开发者及爱好者设计…

作者头像 李华
网站建设 2026/4/17 13:31:16

程序员必学!Claude Skills与MCP协同实战:构建智能代理的收藏级指南

文章介绍了Anthropic的Claude模型中Skills与MCP的协同机制。MCP提供对外部系统的标准化连接&#xff0c;而Skills提供工作流程逻辑&#xff0c;指导Claude有效使用这些工具。两者结合可构建遵循特定工作流程的智能代理&#xff0c;实现清晰的数据发现、可靠的任务编排和一致的性…

作者头像 李华
网站建设 2026/4/18 11:20:01

【day 50】预训练模型

浙大疏锦行 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np# 定义通道注意力 class ChannelAttention(nn.Mod…

作者头像 李华