当前位置: 首页 > news >正文

使用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学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

相关文章:

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

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

什么是malloxx勒索病毒,服务器中malloxx勒索病毒了怎么办?

Malloxx勒索病毒是一种新型的电脑病毒,它通过加密用户电脑中的重要文件数据来威胁用户,并以此勒索钱财。这种病毒并不是让用户的电脑瘫痪,而是以非常独特的方式进行攻击。在感染了Malloxx勒索病毒后,它会加密用户服务器中的数据&a…...

CocosCreator3.8研究笔记(六)CocosCreator 脚本装饰器的理解

一、什么是装饰器? 装饰器是TypeScript脚本语言中的概念。 TypeScript的解释:在一些场景下,我们需要额外的特性来支持标注或修改类及其成员。装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了…...

docker login harbor http login登录

前言 搭建的 harbor 仓库为 http 协议,在本地登录时出现如下报错: docker login http://192.168.xx.xx Username: admin Password: Error response from daemon: Get "https://192.168.xx.xx/v2/": dialing 192.168.xx.xx:443 matches static …...

day5 qt

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);timer_idthis->startTimer(100);//啓動一個定時器 每100ms發送一次信號ui->Edit1->setPlaceholderTex…...

【80天学习完《深入理解计算机系统》】第十三天 3.7 缓冲区溢出 attack lab

3.7 缓冲区溢出 && attack lab...

Hadoop生态之hive

一 概述与特点 之所以把Hive放在Hadoop生态里面去写,是因为它本身依赖Hadoop。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能。 其本质是将 SQL 转换为 MapReduce/Spark 的任务进行运算,底层由 HDFS 来提供…...

AWS DynamoDB浅析

AWS DynamoDB是一个NOSQL数据库。 可以通过IAM直接控制权限,和AWS其他服务连用非常方便。 DynamoDB的几个概念 Partition Key:分区键。如果没有Sort key,那么Partition Key必须唯一,如有Sort key,Partition Key可以重…...

Linux安装ffmpeg

1 下载yasm wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install2 下载ffmpeg wget http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2 tar jxvf ffmpeg-3.1.3.tar.…...

(18)不重启服务动态停止、启动RabbitMQ消费者

我们在消费RabbitMQ消息的过程中,有时候可能会想先暂停消费一段时间,然后过段时间再启动消费者,这个需求怎么实现呢?我们可以借助RabbitListenerEndpointRegistry这个类来实现,它的全类名是org.springframework.amqp.r…...

数据仓库的流程

数据仓库完全用统计分析框架实现:Spark,MR 但是因为实际生产环境中,需求量非常大, 如果每个需求都采用独立c代码开发方式,重复计算会很多. 提高性能的方法: 1.减少数据量 2. 减少重复计算 例如RDD cache 可以减少重复计算,但是不安全,都在缓存中, persist 都放内存中,但是慢 而…...

MyBatis-Plus深入 —— 条件构造器与插件管理

前言 在前面的文章中,荔枝梳理了一个MyBatis-Plus的基本使用、配置和通用Service接口,我们发现在MyBatis-Plus的辅助增强下我们不再需要通过配置xml文件中的sql语句来实现基本的sql操作了,不愧是最佳搭档!在这篇文章中&#xff0c…...

C语言结构体的初始化方式

逐个初始化字段:这是最直接的方式,你可以逐个为结构体的每个字段进行初始化。 struct Student { char name[50]; int age; float marks; }; struct Student student1 {"Alice", 20, 89.5}; 2.使用结构体字面值初始化:这种方…...

Vue生成多文件pdf准考证

这是渲染的数据 这是生成的pdf文件,直接可以打印 需要安装和npm依赖和引入封装的pdf.js文件 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdfpdf.js文件 import html2canvas from "html2canvas"; import jsPDF …...

Rust的derive思考

这几天在Yew的学习实践中,发现derive中的参数中包含了yew自己的东西,比如yew::Properties。习惯使用#[derive(Clone, Debug, PartialEq)]之后,发现还有新的成员,这让我好奇起来。 首先让我们来回顾一下derive是什么。 #[derive(…...

Python常用模块

文章目录 1. time:时间2. calendar:日历3. datetime:可以运算的时间4. sys:系统5. os:操作系统6. random:随机数7. json:序列化8. pickle:序列化9. logging 模块9.1 什么是logging模…...

Java“牵手”京东商品评论数据接口方法,京东商品评论接口,京东商品评价接口,行业数据监测,京东API实现批量商品评论内容数据抓取示例

京东平台商品评论数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取京东商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、评论内容、评论日期、评论图片、追评内容等详细信息 。 获取商品评论接口API是一种用于获取…...

算法leetcode|75. 颜色分类(rust重拳出击)

文章目录 75. 颜色分类:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 75. 颜色分类: 给定一个包含红色、白色和蓝色、共 n…...

网络安全(黑客)自学笔记学习路线

谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈:娱乐圈 技术圈 职业圈。 娱乐圈:主要是初中生和高中生较多,玩网恋…...

NoSQL:非关系型数据库分类

NoSQL,全称 Not Only SQL,意为不仅仅是 SQL,泛指非关系型数据库。NoSQL 是基于键值对的,而且不需要经过 SQL 层的解析,数据之间没有耦合性,性能非常高。 非关系型数据库又可细分如下: 键值存储…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...