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

news/2024/7/2 19:39:42/文章来源:https://blog.csdn.net/aobulaien001/article/details/132676539

健身手表(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.luyixian.cn/news_show_166603.aspx

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

相关文章

无涯教程-JavaScript - DAYS360函数

描述 DAYS360函数返回基于360天的年份(十二个月为30天)的两个日期之间的天数,该天数用于会计计算。 语法 DAYS360 (start_date,end_date,[method])争论 Argument描述Required/OptionalStart_dateThe two dates between which you want to know the number of days.Required…

css画箭头图标放标题前面,旋转,border的单个边框设置

CSS边框属性_css border dotted_小张biubiu的博客-CSDN博客 你还不知道css的旋转效果怎么实现?来这里看看吧_css旋转效果_我糖呢的博客-CSDN博客 .sub-title{position: relative;margin-left: 59px;& span{color: #1CDBFE;};& span::before{content: "…

微服务-gateway跨域配置

文章目录 一、前言二、gateway跨域配置1、问题描述1.1、什么是跨域请求?1.1.1、同源策略1.1.2. 安全性考虑1.1.3. 跨域攻击 1.2、问题产生原因 2、解决方法2.1、修改配置文件2.2、配置类统一配置2.3、全局跨域拦截器 三、总结 一、前言 在SpringCloud项目中&#x…

四川玖璨电子商务有限公司:短视频及直播运营

​ 短视频及直播运营是当下最火热的互联网行业之一,它以轻松、有趣的方式改变了人们的生活和娱乐方式。作为一名短视频及直播运营实训学员,我有幸得到了具体的操作指导和实践机会,让我对这个行业有了更深入的了解。 在短视频及直…

官方发布:Mac 版 Visual Studio IDE将于明年 8 月 31 日停止支持

近日,微软官方宣布:适用于 Mac 平台的 Visual Studio 集成开发环境(IDE)已经启动 "退休" 进程。Visual Studio for Mac 17.6 将继续支持 12 个月,持续到 2024 年 8 月 31 日。 微软表示在未来的 1 年内将重…

VSCode 配置 C 语言编程环境

目录 一、下载 mingw64 二、配置环境变量 三、三个配置文件 四、格式化代码 1、安装插件 2、保存时自动格式化 3、左 { 不换行 上了两年大学,都还没花心思去搭建 C 语言编程环境,惭愧,惭愧。 一、下载 mingw64 mingw64 是著名的 C/C…

css中的z-index是什么

css中的z-index是什么 在 CSS 中&#xff0c;有一个属性可以显式控制 HTML 元素的堆叠顺序&#xff1a;z-index。具有较高值的​​元素就会出现在顶部&#xff1a; <style>.box {position: relative;width: 50px;height: 50px;border: 3px solid;background: silver;}.…

电脑硬盘数据恢复一般需要收费多少钱

随着电子信息时代的发展&#xff0c;个人和企业对电脑硬盘中存储的数据越发重视。然而&#xff0c;由于各种原因&#xff0c;硬盘数据丢失的情况屡见不鲜。如果您正陷入这样的困境&#xff0c;您可能会好奇恢复失去的数据需要花费多少钱。本文将为您介绍电脑硬盘数据恢复的一般…

数据结构前言

一、什么是数据结构&#xff1f; 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 上面是百度百科的定义&#xff0c;通俗的来讲数据结构就是数据元素集合与数据元素集合或者数据元素与数据元素之间的组成形式。 举个…

pdf文件过大如何缩小上传?pdf压缩跟我学

在我们日常工作和生活中&#xff0c;经常会遇到PDF文件过大的问题&#xff0c;给文件传输和存储带来了很大的不便。那么&#xff0c;如何缩小PDF文件大小以便上传呢&#xff1f;下面就给大家分享几个压缩方法&#xff0c;一起来了解下PDF文件压缩方法吧~ 方法一&#xff1a;嗨格…

论文阅读《Nougat:Neural Optical Understanding for Academic Documents》

摘要 科学知识主要存储在书籍和科学期刊中&#xff0c;通常以PDF的形式。然而PDF格式会导致语义信息的损失&#xff0c;特别是对于数学表达式。我们提出了Nougat&#xff0c;这是一种视觉transformer模型&#xff0c;它执行OCR任务&#xff0c;用于将科学文档处理成标记语言&a…

中国手机新进程:折叠屏出海的荣耀,5G中回归的华为

最近&#xff0c;“华为5G回归”“自研麒麟芯片回归”的消息引爆网络。网友开心庆贺之余&#xff0c;也纷纷猜测&#xff0c;华为强势归来&#xff0c;哪家友商最慌&#xff1f; “华为的回归&#xff0c;让竞争充满了更多的可能性和更多的魅力”&#xff0c;与华为渊源颇深的…

ELK框架Logstash配合Filebeats和kafka使用

ELK框架Logstash配合Filebeats和kafka使用 本文目录 ELK框架Logstash配合Filebeats和kafka使用配置文件结构input为标准输入&#xff0c;output为标准输出input为log文件output为标准输出output为es input为tcpspringboot配置logstash配置 input为filebeatsfilebeats配置logsta…

阿里云2核4G服务器5M带宽5年费用价格明细表

阿里云2核4G服务器5M带宽可以选择轻量应用服务器或云服务器ECS&#xff0c;轻量2核4G4M带宽服务器297元一年&#xff0c;2核4G云服务器ECS可以选择计算型c7、c6或通用算力型u1实例等&#xff0c;买5年可以享受3折优惠&#xff0c;阿腾云分享阿里云服务器2核4G5M带宽五年费用表&…

OPENCV实现图像查找

特征匹配+单应性矩阵 # -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/4 """ import cv2 import numpy as np# 读图像 img1 = cv2.imread(F:\\learnOpenCV\\openCVLearning\\pictures\\chess

容器编排工具的比较:Kubernetes、Docker Swarm、Nomad

随着容器化技术的普及&#xff0c;容器编排工具成为了现代应用部署和管理的重要组成部分。容器编排工具能够自动化容器的部署、扩展和管理&#xff0c;从而提高应用的可靠性和可伸缩性。在众多的容器编排工具中&#xff0c;Kubernetes、Docker Swarm和Nomad是三个备受关注的主要…

OpenCV(十八):图像直方图

目录 1.直方图统计 2.直方图均衡化 3.直方图匹配 1.直方图统计 直方图统计是一种用于分析图像或数据的统计方法&#xff0c;它通过统计每个数值或像素值的频率分布来了解数据的分布情况。 在OpenCV中&#xff0c;可以使用函数cv::calcHist()来计算图像的直方图。 calcHist(…

同步推送?苹果计划本月推出 iOS17和iPadOS17,你的手机支持吗?

据报道&#xff0c;苹果公司计划在本月推出 iOS 17 和 iPadOS 17 正式版更新。与去年不同的是&#xff0c;这次更新将同时发布&#xff0c;而不是分别发布。根据彭博社的一位消息人士马克・古尔曼的说法&#xff0c;苹果公司认为 iOS 17 和 iPadOS 17 的第八个测试版已经非常接…

浅谈Mysql读写分离的坑以及应对的方案 | 京东云技术团队

一、主从架构 为什么我们要进行读写分离&#xff1f;个人觉得还是业务发展到一定的规模&#xff0c;驱动技术架构的改革&#xff0c;读写分离可以减轻单台服务器的压力&#xff0c;将读请求和写请求分流到不同的服务器&#xff0c;分摊单台服务的负载&#xff0c;提高可用性&a…

Calico IP In IP模拟组网

Calico IP In IP模拟组网 网络架构 模拟组网 先在k8s-master-1节点执行如下命令&#xff1a; # 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网…