健身手表(Fitness Watch)数据分析涉及分析健身可穿戴设备或智能手表收集的数据,以深入了解用户的健康和活动模式。这些设备可以跟踪所走的步数、消耗的能量、步行速度等指标。本文将带您完成使用Python进行Fitness Watch数据分析的任务。
Fitness Watch数据分析是健康和保健领域企业的重要工具。通过分析健身可穿戴设备的用户数据,公司可以了解用户行为,提供个性化的解决方案,并有助于改善用户的整体健康和福祉。
下面是我们在处理健身手表数据分析问题时可以遵循的过程:
因此,该过程始于从健身手表收集数据。每款健身手表都可与智能手机上的应用程序配合使用。您可以从智能手机上的该应用程序收集数据。例如,这里用的是从苹果的健康应用程序收集了的一个健身手表的数据。
现在,让我们通过导入必要的Python库和数据集来开始Fitness Watch数据分析的任务:
import pandas as pd
import plotly.io as pio
import plotly.graph_objects as go
pio.templates.default = "plotly_white"
import plotly.express as px
data = pd.read_csv("Apple-Fitness-Data.csv")
print(data.head())
输出
Date Time Step Count Distance Energy Burned \
0 2023-03-21 16:01:23 46 0.02543 14.620
1 2023-03-21 16:18:37 645 0.40041 14.722
2 2023-03-21 16:31:38 14 0.00996 14.603
3 2023-03-21 16:45:37 13 0.00901 14.811
4 2023-03-21 17:10:30 17 0.00904 15.153
Flights Climbed Walking Double Support Percentage Walking Speed
0 3 0.304 3.060
1 3 0.309 3.852
2 4 0.278 3.996
3 3 0.278 5.040
4 3 0.281 5.184
让我们看看这个数据是否包含任何null值:
print(data.isnull().sum())
输出
Date 0
Time 0
Step Count 0
Distance 0
Energy Burned 0
Flights Climbed 0
Walking Double Support Percentage 0
Walking Speed 0
dtype: int64
因此,数据没有任何空值。让我们进一步分析步数随时间的变化:
# Step Count Over Time
fig1 = px.line(data, x="Time",
y="Step Count",
title="Step Count Over Time")
fig1.show()
现在,让我们来看看随着时间的推移所覆盖的距离:
# Distance Covered Over Time
fig2 = px.line(data, x="Time",
y="Distance",
title="Distance Covered Over Time")
fig2.show()
现在,让我们来看看能量随着时间推移的消耗:
# Energy Burned Over Time
fig3 = px.line(data, x="Time",
y="Energy Burned",
title="Energy Burned Over Time")
fig3.show()
现在,让我们来看看步行速度随着时间的推移:
# Walking Speed Over Time
fig4 = px.line(data, x="Time",
y="Walking Speed",
title="Walking Speed Over Time")
fig4.show()
现在,让我们计算并查看每天的平均步数:
# Calculate Average Step Count per Day
average_step_count_per_day = data.groupby("Date")["Step Count"].mean().reset_index()
fig5 = px.bar(average_step_count_per_day, x="Date",
y="Step Count",
title="Average Step Count per Day")
fig5.update_xaxes(type='category')
fig5.show()
输出
现在,让我们来看看步行效率:
# Calculate Walking Efficiency
data["Walking Efficiency"] = data["Distance"] / data["Step Count"]
fig6 = px.line(data, x="Time",
y="Walking Efficiency",
title="Walking Efficiency Over Time")
fig6.show()
现在,让我们来看看步数和步行速度随时间间隔的变化:
# Create Time Intervals
time_intervals = pd.cut(pd.to_datetime(data["Time"]).dt.hour,
bins=[0, 12, 18, 24],
labels=["Morning", "Afternoon", "Evening"],
right=False)
data["Time Interval"] = time_intervals
# Variations in Step Count and Walking Speed by Time Interval
fig7 = px.scatter(data, x="Step Count",
y="Walking Speed",
color="Time Interval",
title="Step Count and Walking Speed Variations by Time Interval",
trendline='ols')
fig7.show()
现在,让我们比较所有健康和健身指标的日平均值:
# Reshape data for treemap
daily_avg_metrics = data.groupby("Date").mean().reset_index()
daily_avg_metrics_melted = daily_avg_metrics.melt(id_vars=["Date"],
value_vars=["Step Count", "Distance",
"Energy Burned", "Flights Climbed",
"Walking Double Support Percentage",
"Walking Speed"])
# Treemap of Daily Averages for Different Metrics Over Several Weeks
fig = px.treemap(daily_avg_metrics_melted,
path=["variable"],
values="value",
color="variable",
hover_data=["value"],
title="Daily Averages for Different Metrics")
fig.show()
上图将每个健康和健身指标表示为矩形图块。每个图块的大小对应于度量的值,并且图块的颜色表示度量本身。悬停数据在与可视化交互时显示每个指标的精确平均值。
步骤计数度量由于其与其他度量相比通常更高的数值而主导可视化,使得难以有效地可视化其他度量中的变化。由于步数的值高于所有其他指标的值,让我们再次查看此可视化,但不包含步数:
# Select metrics excluding Step Count
metrics_to_visualize = ["Distance", "Energy Burned", "Flights Climbed",
"Walking Double Support Percentage", "Walking Speed"]
# Reshape data for treemap
daily_avg_metrics_melted = daily_avg_metrics.melt(id_vars=["Date"], value_vars=metrics_to_visualize)
fig = px.treemap(daily_avg_metrics_melted,
path=["variable"],
values="value",
color="variable",
hover_data=["value"],
title="Daily Averages for Different Metrics (Excluding Step Count)")
fig.show()
这就是如何使用Python进行健身数据分析。Fitness Watch数据分析是健康和保健领域企业的重要工具。通过分析健身可穿戴设备的用户数据,公司可以了解用户行为,提供个性化的解决方案,并有助于改善用户的整体健康和福祉。