使用Python进行健身手表数据分析

news2024/12/29 10:48:31

健身手表(Fitness Watch)数据分析涉及分析健身可穿戴设备或智能手表收集的数据,以深入了解用户的健康和活动模式。这些设备可以跟踪所走的步数、消耗的能量、步行速度等指标。本文将带您完成使用Python进行Fitness Watch数据分析的任务。

Fitness Watch数据分析是健康和保健领域企业的重要工具。通过分析健身可穿戴设备的用户数据,公司可以了解用户行为,提供个性化的解决方案,并有助于改善用户的整体健康和福祉。

下面是我们在处理健身手表数据分析问题时可以遵循的过程:

  1. 从健身手表收集数据,确保数据准确可靠。

  2. 执行EDA以获得对数据的初步了解。

  3. 从原始数据中创建可能提供更有意义的见解的新功能。

  4. 创建数据的可视化表示,以有效地传达见解。

  5. 根据时间间隔或健身指标水平对用户的活动进行分段,并分析其表现。

因此,该过程始于从健身手表收集数据。每款健身手表都可与智能手机上的应用程序配合使用。您可以从智能手机上的该应用程序收集数据。例如,这里用的是从苹果的健康应用程序收集了的一个健身手表的数据。

使用Python进行分析

现在,让我们通过导入必要的Python库和数据集来开始Fitness Watch数据分析的任务:

1import pandas as pd  
2import plotly.io as pio  
3import plotly.graph_objects as go  
4pio.templates.default = "plotly_white"  
5import plotly.express as px  
6  
7data = pd.read_csv("Apple-Fitness-Data.csv")  
8print(data.head())  

输出

 1         Date       Time  Step Count  Distance  Energy Burned  \  
 20  2023-03-21  16:01:23           46   0.02543         14.620     
 31  2023-03-21  16:18:37          645   0.40041         14.722     
 42  2023-03-21  16:31:38           14   0.00996         14.603     
 53  2023-03-21  16:45:37           13   0.00901         14.811     
 64  2023-03-21  17:10:30           17   0.00904         15.153     
 7  
 8   Flights Climbed  Walking Double Support Percentage  Walking Speed    
 90                3                              0.304          3.060    
101                3                              0.309          3.852    
112                4                              0.278          3.996    
123                3                              0.278          5.040    
134                3                              0.281          5.184  

让我们看看这个数据是否包含任何null值:

1print(data.isnull().sum())  

输出

1Date                                 0  
2Time                                 0  
3Step Count                           0  
4Distance                             0  
5Energy Burned                        0  
6Flights Climbed                      0  
7Walking Double Support Percentage    0  
8Walking Speed                        0  
9dtype: int64  

因此,数据没有任何空值。让我们进一步分析步数随时间的变化:

1# Step Count Over Time  
2fig1 = px.line(data, x="Time",  
3               y="Step Count",  
4               title="Step Count Over Time")  
5fig1.show()  

现在,让我们来看看随着时间的推移所覆盖的距离:

1# Distance Covered Over Time  
2fig2 = px.line(data, x="Time",  
3               y="Distance",  
4               title="Distance Covered Over Time")  
5fig2.show()  

现在,让我们来看看能量随着时间推移的消耗:

1# Energy Burned Over Time  
2fig3 = px.line(data, x="Time",  
3               y="Energy Burned",  
4               title="Energy Burned Over Time")  
5fig3.show()  

现在,让我们来看看步行速度随着时间的推移:

1# Walking Speed Over Time  
2fig4 = px.line(data, x="Time",  
3               y="Walking Speed",  
4               title="Walking Speed Over Time")  
5fig4.show()  

现在,让我们计算并查看每天的平均步数:

1# Calculate Average Step Count per Day  
2average_step_count_per_day = data.groupby("Date")["Step Count"].mean().reset_index()  
3  
4fig5 = px.bar(average_step_count_per_day, x="Date",  
5              y="Step Count",  
6              title="Average Step Count per Day")  
7fig5.update_xaxes(type='category')  
8fig5.show()  

输出

现在,让我们来看看步行效率:

1# Calculate Walking Efficiency  
2data["Walking Efficiency"] = data["Distance"] / data["Step Count"]  
3  
4fig6 = px.line(data, x="Time",  
5               y="Walking Efficiency",  
6               title="Walking Efficiency Over Time")  
7fig6.show()  

现在,让我们来看看步数和步行速度随时间间隔的变化:

 1# Create Time Intervals  
 2time_intervals = pd.cut(pd.to_datetime(data["Time"]).dt.hour,  
 3                        bins=[0, 12, 18, 24],  
 4                        labels=["Morning", "Afternoon", "Evening"],   
 5                        right=False)  
 6  
 7data["Time Interval"] = time_intervals  
 8  
 9# Variations in Step Count and Walking Speed by Time Interval  
10fig7 = px.scatter(data, x="Step Count",  
11                  y="Walking Speed",  
12                  color="Time Interval",  
13                  title="Step Count and Walking Speed Variations by Time Interval",  
14                  trendline='ols')  
15fig7.show()

现在,让我们比较所有健康和健身指标的日平均值:

 1# Reshape data for treemap  
 2daily_avg_metrics = data.groupby("Date").mean().reset_index()  
 3  
 4daily_avg_metrics_melted = daily_avg_metrics.melt(id_vars=["Date"],   
 5                                                  value_vars=["Step Count", "Distance",   
 6                                                              "Energy Burned", "Flights Climbed",   
 7                                                              "Walking Double Support Percentage",   
 8                                                              "Walking Speed"])  
 9  
10# Treemap of Daily Averages for Different Metrics Over Several Weeks  
11fig = px.treemap(daily_avg_metrics_melted,  
12                 path=["variable"],  
13                 values="value",  
14                 color="variable",  
15                 hover_data=["value"],  
16                 title="Daily Averages for Different Metrics")  
17fig.show()

上图将每个健康和健身指标表示为矩形图块。每个图块的大小对应于度量的值,并且图块的颜色表示度量本身。悬停数据在与可视化交互时显示每个指标的精确平均值。

步骤计数度量由于其与其他度量相比通常更高的数值而主导可视化,使得难以有效地可视化其他度量中的变化。由于步数的值高于所有其他指标的值,让我们再次查看此可视化,但不包含步数:

 1# Select metrics excluding Step Count  
 2metrics_to_visualize = ["Distance", "Energy Burned", "Flights Climbed",   
 3                        "Walking Double Support Percentage", "Walking Speed"]  
 4  
 5# Reshape data for treemap  
 6daily_avg_metrics_melted = daily_avg_metrics.melt(id_vars=["Date"], value_vars=metrics_to_visualize)  
 7  
 8fig = px.treemap(daily_avg_metrics_melted,  
 9                 path=["variable"],  
10                 values="value",  
11                 color="variable",  
12                 hover_data=["value"],  
13                 title="Daily Averages for Different Metrics (Excluding Step Count)")  
14fig.show()

总结

这就是如何使用Python进行健身数据分析。Fitness Watch数据分析是健康和保健领域企业的重要工具。通过分析健身可穿戴设备的用户数据,公司可以了解用户行为,提供个性化的解决方案,并有助于改善用户的整体健康和福祉。

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/972487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT多线程

1.QT4.7以前的版本-----线程处理方式 1. 出现的警告 直接使用从UI—>转到槽,就会出现警告 2. 出现的错误 error: invalid operands of types QTimer* and void (QTimer::*)(QTimer::QPrivateSignal) to binary operator& 错误:无效的操作数类型’QTimer…

【人工智能】—_有信息搜索、最佳优先搜索、贪心搜索、A_搜索

文章目录 【人工智能】— 有信息搜索、最佳优先搜索、贪心搜索、A*搜索无/有信息的搜索Informed Search AlgorithmsBest-first search(最佳优先搜索)Greedy SearchA* Search解释说明A*搜索是代价最优的和完备的对搜索等值线如何理解 【人工智能】— 有信息搜索、最佳优先搜索、…

2023年文旅地产行业研究报告

第一章 行业概况 1.1 定义 文旅地产,作为一个综合性的产业形态,融合了文化、旅游和地产三大元素,是住宅地产的补充和延伸。它不仅包含了文化和旅游的业态,还融入了商业等多元化元素,被誉为地产中的轻奢品。 在核心业…

AVR128单片机 自动售水机

一、系统方案 1、设计使用两个按键分别为S1和S2及一个发光二极管LED。S1为出水控制按键,当S1按下,表示售水机持续出水,继电器(库元件relay)接通,指示灯LED亮。S2为停水控制键,当S2按下&#xff…

Jenkins详解(三)

Jenkins详解(三) 目录 Jenkins详解(三) 1、Jenkins介绍2、Jenkins CI/CD 流程3、部署环境 3.1 环境准备3.2 安装GitLab3.3 初始化GitLab3.4 GitLab中文社区版补丁包安装3.5 修改GitLab配置文件/etc/gitlab/gitlab.rb3.6 在宿主机输入 http://192.168.200.26:88 地址就可以访问了…

Dom-clobbering原理和例题

目录 引入 1.获取标签 2.覆盖 3.多层覆盖 利用Dom-clobbering 1.tostring 2.集合取值 3.层级关系取值 4.三层取值 5.自定义属性 例题 1 2. 3. 引入 分析 引入 先用三个小例子看看dom-clobbering干了什么 1.获取标签 这个例子给img标签分别做了一个id和一个name…

热释电矢量传感器设计

1 概述 使用4个热释电传感器组成一个2X2的矩阵。通过曲线的相位差、 峰峰值等特征量来计算相关信息。本文使用STM32单片机设计、制作了热释电传感器矩阵;使用C#.NET设计了上位机软件。为以上研究做了试验平台。 2 硬件电路设计 2.1 热释电传感器介绍 热释电红外…

CCKS2023:基于企业数仓和大语言模型构建面向场景的智能应用

8月24日-27日,第十七届全国知识图谱与语义计算大会(CCKS 2023)在沈阳召开。大会以“知识图谱赋能通用AI”为主题,探讨知识图谱对通用AI技术的支撑能力,探索知识图谱在跨平台、跨领域等AI任务中的作用和应用途径。 作为…

MAC系统“无法验证开发者”问题

参考:https://blog.csdn.net/suxiang198/article/details/126550955 对于使用MAC电脑的同学而言,许多时候因为使用需要,从第三方源(比如github等)下载工具或软件,而在运行时会受到MAC系统的安全限制,老是弹…

【STM32】学习笔记-SPI通信

SPI通信 SPI通信(Serial Peripheral Interface)是一种同步的串行通信协议,用于在微控制器、传感器、存储器、数字信号处理器等之间进行通信。SPI通信协议需要使用4个线路进行通信:时钟线(SCLK)、主输入/主输出线(MISO)、主输出/主…

深入浅出AXI协议(5)——数据读写结构读写响应结构

目录 一、前言 二、写选通(Write strobes) 三、窄传输(Narrow transfers) 1、示例1 2、示例2 四、字节不变性(Byte invariance) 五、未对齐的传输(Unaligned transfers) 六…

网络版五子棋C++实现

目录 1.项目介绍 2.开发环境 3.核心技术 4.环境搭建 5.WebSocketpp介绍 5.1WebSocketpp是什么 5.2为什么使用WebSocketpp 5.3原理解析: 5.4WebSocketpp主要特性 6.WebSocketpp使用 7.JsonCpp使用 8.MySQL API 9.项目模块设计以及流程图 10.封装日志宏…

基于单片机的太阳能热水器控制器设计

一、项目介绍 随着环保意识的逐渐增强,太阳能热水器作为一种清洁能源应用得越来越广泛。然而,传统的太阳能热水器控制器通常采用机械式或电子式温控器,存在精度低、控制不稳定等问题。为了解决这些问题,本项目基于单片机技术设计…

Qt鼠标点击事件处理:按Escape键退出程序

创建项目 Qt 入门实战教程(目录) 首先,创建一个名称为QtKeyEscape的Qt默认的窗口程序。 参考 :Qt Creator 创建 Qt 默认窗口程序 Qt响应键盘Escape事件 打开Qt Creator >>编辑 >> 项目 >> Headers>> …

服务运营 | MS文章精读:基于强化学习和可穿戴设备的帕金森治疗方案

作者信息:庞硕,李舒湉 编者按 帕金森疾病的治疗是一个备受关注的医疗问题。本文通过患者的可穿戴传感器收集数据,提出了一个基于强化学习的帕金森药物治疗方案。这是第一篇关于可穿戴治疗设备在慢性疾病管理中的应用研究。原文于2023年4月发…

如何在你的Android工程中启用K2编译器?

如何在你的Android工程中启用K2编译器? K2编译器是用于Kotlin代码编译的最新、高效编译器,你现在可以尝试使用了。 Kotlin编译器正在为Kotlin 2.0进行重写,新的编译器实现(代号K2)带来了显著的构建速度改进&#xff…

K210-调用自定义py库

调用自定义py库 导入py库文件调用py库 用过Python的朋友应该知道,Python是支持将自定义py库(或者第三方py库)放到同一个目录下调用的,MicroPython也是支持调用自定义py库的。在调用自定义py库之前,需要提前将py库文件导…

期货基础知识

一、期货是什么?  期货是与现货相对应,并由现货衍生而来。期货通常指期货合约,期货与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大众产品如棉花、大…

影响Windows 和 macOS平台,黑客利用 Adobe CF 漏洞部署恶意软件

FortiGuard 实验室的网络安全研究人员发现了几个影响 Windows 和 Mac 设备的 Adobe ColdFusion 漏洞。 远程攻击者可利用Adobe ColdFusion 2021中的验证前RCE漏洞,获取受影响系統的控制权力。Adobe 已发布安全补丁来解决这些漏洞,但攻击者仍在利用这些漏…

leetcode:1941. 检查是否所有字符出现次数相同(python3解法)

难度:简单 给你一个字符串 s ,如果 s 是一个 好 字符串,请你返回 true ,否则请返回 false 。 如果 s 中出现过的 所有 字符的出现次数 相同 ,那么我们称字符串 s 是 好 字符串。 示例 1: 输入:s…