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

健身手表(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.rhkb.cn/news/121937.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

S7-1200/1500增量式PID(输出归一化、支持PWM输出)

离散增量式PID算法公式请查看下面文章链接: 三菱PLC增量式PID算法FB(带死区设置和外部复位控制)_用三菱plc自己编写pid算法_RXXW_Dor的博客-CSDN博客关于PID废话不多说,各种位置式增量式资料和公式网上也非常多。PID从提出和发展目前已经一个世纪过去了,还在不断研究创新,…

Java多线程(Thread)详解之启动与中断

在我的前一篇博客中直接介绍了Thread的”五种“打开方式:Thread的”五种“打开方式https://blog.csdn.net/qq_45875349/article/details/132644717?spm1001.2014.3001.5501 但是还没有详细的对Thread类进行说明,这篇博客主要对Thread类进行介绍&#x…

全局指令和局部指令

自定义v-load <template><div class"main"><div class"box" v-loading"isLoading"><ul><li v-for"item in list" :key"item.id" class"news"><div class"left">…

【网络编程】TCP/IP协议(互联网的基石)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

实时操作系统Freertos开坑学习笔记:(四):临界段保护、列表与列表项

前言 废话不多说&#xff0c;直接看主要要探究的问题&#xff1a; 一、临界段代码保护 1.什么是临界段&#xff1f; 图里面说&#xff0c;临界区的代码是不能被打断的&#xff0c;它运行时不能被中断打断&#xff0c;也不能由于非阻塞任务延时而切换到其他任务去。 比如说…

bash: cmake: command not found...+++++++lsb_release: command not found

一 .bash: cmake: command not found… centos中安装那个cmake。 1、问题 [rootPC3 home]# cmake bash: cmake: command not found... Similar command is: make当前系统&#xff1a; [rootPC3 home]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx…

蝶形运算法

蝶形运算法是一种基于FFT&#xff08;Fast Fourier Transform&#xff09;算法的计算方法&#xff0c;其基本思想是将长度为N的DFT分解成若干个长度为N/2的DFT计算&#xff0c;并通过不断的合并操作得到最终的结果。该算法也称为“蝴蝶算法”&#xff0c;因为它的计算过程中需要…

[Android 四大组件] --- Activity

1 Activity是什么 ​​Activity​​是一个Android的应用组件&#xff0c;它提供屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口&#xff0c;窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成&…

vue3学习笔记

语句直接写在<script setup></script>内 1.父组件向子组件传值 子组件&#xff08;名字cs.vue&#xff09;&#xff1a; <template><h1 >{{ msg }}</h1> </template><script setup> defineProps({msg: String }) </script>父…

LeetCode--HOT100题(47)

目录 题目描述&#xff1a;105. 从前序与中序遍历序列构造二叉树&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;105. 从前序与中序遍历序列构造二叉树&#xff08;中等&#xff09; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preo…

【AI测试】python文字图像识别tesseract

[AI测试]python文字图像识别tesseract github官网&#xff1a;https://github.com/tesseract-ocr/tesseract python版本&#xff1a;https://github.com/madmaze/pytesseract OCR&#xff0c;即Optical Character Recognition&#xff0c;光学字符识别&#xff0c;是指通过扫…

工程制造领域:企业IT架构

一、IT组织规划架构图 1.1 IT服务保证梯队与指导思想 二、整体业务规划架构图 三、数据化项目规划架构图 四、应用系统集成架构图

CSS Flex布局

前言 Flex布局&#xff08;弹性盒子布局&#xff09; 是一种用于在容器中进行灵活和自适应布局的CSS布局模型。通过使用Flex布局&#xff0c;可以更方便地实现各种不同尺寸和比例的布局&#xff0c;使元素在容器内自动调整空间分配。 目录 容器属性 &#x1f341;display属性 &…

数据结构与算法复杂度介绍

目录 一、基本概念 二、时间复杂度 【2.1】时间复杂度概念 【2.2】大O的渐进表示法 【2.3】举例时间复杂度计算 三、空间复杂度 一、基本概念 数据结构&#xff1a;相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构&#xff0c;散列结构、树…

单片机电子元器件-按键

电子元器件 按键上有 四个引脚 1 2 、 3 4 按下之后 导通 1 3 、 2 4 初始导通 通常按键开关为机械弹性开关&#xff0c;开关在闭合不会马上稳定的接通&#xff0c;会有一连串的抖动 抖动时间的长短有机械特性来决定的&#xff0c;一般为5ms 到10 ms 。 消抖的分类 硬件消…

【大数据Hive】hive 加载数据常用方案使用详解

目录 一、前言 二、load 命令使用 2.1 load 概述 2.1.1 load 语法规则 2.1.2 load语法规则重要参数说明 2.2 load 数据加载操作演示 2.2.1 前置准备 2.2.2 加载本地数据 2.2.3 HDFS加载数据 2.2.4 从HDFS加载数据到分区表中并指定分区 2.3 hive3.0 load 命令新特性 …

vue项目配置MongoDB的增删改查操作

在Vue中配置MongoDB的增删改查操作&#xff0c;需要先安装mongoose模块来连接MongoDB数据库。 1. 在Vue项目的根目录中&#xff0c;使用命令行安装mongoose模块&#xff1a; npm install mongoose --save 2. 找到启动node的app.js文件&#xff08;我这里是在server文件中&…

Java开发之Redis(面试篇 持续更新)

文章目录 前言一、redis使用场景1. 知识分布2. 缓存穿透① 问题引入② 举例说明③ 解决方案④ 实战面试 3. 缓存击穿① 问题引入② 举例说明③ 解决方案④ 实战面试 4. 缓存雪崩① 问题引入② 举例说明③ 解决方案④ 实战面试 5. 缓存-双写一致性① 问题引入② 举例说明③ 解决…

Linux执行命令

命令格式 主命令 选项 参数&#xff08;操作对象&#xff09;例如&#xff1a; 修改主机名 hostname set-hostname 新名称显示/目录下的文件的详细信息 ls -l /命令 内置命令&#xff08;builtin&#xff09;&#xff1a;shell程序自带的命令。 外部命令&#xff1a;有独立…

多通道振弦数据记录仪应用桥梁安全监测的关键要点

多通道振弦数据记录仪应用桥梁安全监测的关键要点 随着近年来桥梁建设和维护的不断推进&#xff0c;桥梁安全监测越来越成为公共关注的焦点。多通道振弦数据记录仪因其高效、准确的数据采集和处理能力&#xff0c;已经成为桥梁安全监测中不可或缺的设备。本文将从以下几个方面…