• 使用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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    输出

     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  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

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

    输出

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

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

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

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

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

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

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

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

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

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    输出

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

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

     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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

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

     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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

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

     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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    总结

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

    题外话

    在这里插入图片描述

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

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

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

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

    img
    img

    二、Python必备开发工具

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

    三、最新Python学习笔记

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

    img

    四、Python视频合集

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

    img

    五、实战案例

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

    img

    六、面试宝典

    在这里插入图片描述

    在这里插入图片描述

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

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

    若有侵权,请联系删除

  • 相关阅读:
    LAMP集群分布式安全方案
    7.(vue3.x+vite)组件间通信方式之vuex
    JPA Criteria 条件查询
    2023年7月京东饮料行业数据分析(京东运营数据分析)
    一文读懂——全局注意力机制(global attention)详解与代码实现
    adb指令切换cpu工作状态至性能模式
    java计算机毕业设计林家餐厅自助点餐管理系统源码+系统+mysql数据库+lw文档
    重新定义音乐创作:ChatGPT与未来音乐产业的融合
    走进 Java 接口测试之简单解决写接口脏数据问题
    基于3D卷积的图像序列特征提取与自注意力的车牌识别方法
  • 原文地址:https://blog.csdn.net/aobulaien001/article/details/132676539