谁是您在 Strava 上的第一支持者?

探索 Strava API 并使用 Python 找出答案

在过去的几年里,Strava 成为了我用来追踪骑行和跑步活动的首选应用程序。 该应用程序的众多很酷的功能之一是您的朋友可以为您的活动点赞。 有时,这些荣誉只是您继续前进所需的士气提升。

2022 年,当我准备在阿尔卑斯山攀登并比以前更频繁地使用 Strava 时,我注意到有些人比其他人更慷慨地获得荣誉。 但我并不清楚那是谁,这让我开始思考。 有没有比应用程序提供的更深入地了解我的统计数据的方法? 嗯,有。

在本文中,我使用了一种非常常见的“Extract Transform Load”方法来构建项目。 我展示了我如何设法从 Strava 获取我的活动数据(提取)、计算新见解(转换)并构建“Kudos Graph”和其他可视化以了解应该感谢谁的支持(加载)。

随着时间的推移,我发现这种方法是组织类似数据项目的好方法。 在进入之前的最后一点注意事项,这里显示的所有内容都是可复制的,代码在 Github 上可用(链接在文章末尾),因此您可以构建自己的代码。

让我们开始编码吧!

我们需要做的第一件事是进行身份验证——即从 Strava 获取访问令牌。 以下函数将通过 POST 请求执行此操作,其中包含我们在上一节中获得的详细信息(客户端 ID、客户端密码、刷新令牌和授权代码)到端点 https://www.strava.com/oauth/token.

在本节中,我们创建两个函数来:

  1. 获取配置文件的所有活动的列表。
    使用我们之前获得的访问令牌并指定定义我们感兴趣的活动范围的两个日期,我们可以获得这两个日期之间所有活动的列表及其主要特征。
  2. 获取特定活动的 kudoers 列表。
    不幸的是,活动的 kudoers 列表未包含在先前请求的结果中。 我们需要构建 get_kudos 函数,该函数返回单个活动的 kudoers 列表,由其 activity_id 标识。

现在我们已经得到了我们想要的数据,我们的想法是只保留我们需要的数据并将其放入 Pandas Dataframe 中。

下面的转换函数从活动列表中提取以下数据:

  1. 用作活动唯一标识符的活动 ID。
  2. 每个活动的荣誉数。
  3. 通过在循环中利用 get_kudos() 函数获得活动的所有 kudoers 列表。
  4. 每个活动的距离。
  5. 每个活动花费的时间。
  6. 活动类型。

⚠️ Strava API 的使用有限制。 我们限制为每 100 分钟 15 次通话和每天 1000 次通话。

在这个项目中,我们调用 API 一次以获取活动列表,然后为每个活动调用一次以获取每个活动中的 kudoers 列表。

这意味着,如果您在考虑的窗口中有超过 100 个活动,则代码将无法正常工作,您需要稍微修改它以符合 API 使用限制。

唯一剩下要做的就是利用我们刚刚构建的函数并开始绘制一些有趣的东西!

就我而言,我正在考虑我在 2022 年的活动,直到今天 — 24/10/2022。

从我们的数据结构中,很容易在给定时间段内获得一些高水平的 KPI:

高级 KPI — 图片由作者提供

因为我们在上一节中获得了每项活动的运动类型,所以我们还可以轻松调查某些类型的活动是否比其他活动更容易获得荣誉。 以下是每种活动的平均点赞数:

每种活动的平均荣誉数 — 图片来自 author

即使它不是最受欢迎的活动类型,跑步也是我拥有最多数据点的运动,所以这是我尝试挖掘更多的地方。 我们可以尝试理解为什么一项活动会比另一项活动获得更多荣誉。 让我们看看跑步距离与活动获得的荣誉数量之间可能存在的相关性。

事实证明,这似乎存在正相关关系,即运行时间越长,获得的荣誉数越高,如下图所示。
诚然,鉴于我们考虑的数据点数量很少,这一结果的统计显着性值得商榷。 这里唯一确定的结论是我需要跑得更多。

我们可以进一步分析,看看其他变量的影响,但我会把它留到另一篇文章。

跑步距离与其获得的荣誉数量之间存在正相关关系 — 图表作者

最后,我们可以绘制“Kudos Graph”,在其中我们可以看到我们的头号支持者是谁,并为他们点赞。
当然,有些人比其他人更沉迷于 Strava,他们会在向下滚动活动源时点赞,而其他人只会偶尔打开应用程序一次,只点赞他们碰巧看到的最近的活动。
这张图表绝不是关于判断人们是否给予荣誉,它只是为了说明你在其他地方看不到的新见解——即使是在应用程序的高级版本中也是如此。

显示最高支持者的“Kudos 图表”——图表作者

毫无疑问,我们可以利用从 Strava API 获得的所有数据做更多的事情。 这只是回答一个不寻常问题的第一步,也是一个很好的练习,可以让事情顺利进行。

如果你想分析你的 Strava 活动并找出你的顶级支持者是谁,可以在此处找到完整代码:
https://github.com/Guigs11/strava_kudos

感谢您一路阅读到文章结尾!
欢迎在下方留言,或通过以下方式联系我
LinkedIn 如果您有任何问题/意见!
更多来!

谁是您在 Strava 上的第一支持者? 从来源 https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-1a5f888230?source=rss—-361f7cf60c5620—9 通过 https://towardsdatascience.com/feed 重新发布

–>

时间戳记:

更多来自 区块链顾问