健身手表(Fitness Watch)数据分析涉及分析健身可穿戴设备或智能手表收集的数据,以深入了解用户的健康和活动模式。这些设备可以跟踪所走的步数、消耗的能量、步行速度等指标。本文将带您完成使用Python进行Fitness Watch数据分析的任务。
Fitness Watch数据分析是健康和保健领域企业的重要工具。通过分析健身可穿戴设备的用户数据,公司可以了解用户行为,提供个性化的解决方案,并有助于改善用户的整体健康和福祉。
下面是我们在处理健身手表数据分析问题时可以遵循的过程:
-
从健身手表收集数据,确保数据准确可靠。
-
执行EDA以获得对数据的初步了解。
-
从原始数据中创建可能提供更有意义的见解的新功能。
-
创建数据的可视化表示,以有效地传达见解。
-
根据时间间隔或健身指标水平对用户的活动进行分段,并分析其表现。
因此,该过程始于从健身手表收集数据。每款健身手表都可与智能手机上的应用程序配合使用。您可以从智能手机上的该应用程序收集数据。例如,这里用的是从苹果的健康应用程序收集了的一个健身手表的数据。
使用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所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除