Kes on teie number 1 toetaja Stravas?

Tutvuge Strava API-ga ja uurige Pythoni abil

Viimastel aastatel sai Stravast minu populaarseks rakenduseks minu rattasõidu ja jooksutegevuse jälgimiseks. Üks rakenduse paljudest lahedatest funktsioonidest on teie sõprade võimalus teile teie tegevuste eest kiita. Ja mõnikord on need kiitused lihtsalt moraalitõuge, mida vajate, et jätkata.

Aastal 2022, kui valmistusin Alpides tõusmiseks ja kasutasin Stravat regulaarsemalt kui varem, märkasin, et mõned inimesed olid oma kiitusega heldemad kui teised. Kuid mul polnud täpset ettekujutust, kes see oli, ja see pani mind mõtlema. Kas on võimalik oma statistikat sügavamalt vaadata kui see, mida rakendus pakub? Noh, seal on.

Selles artiklis kasutasin projekti struktureerimiseks väga levinud lähenemisviisi „Extract Transform Load”. Näitan, kuidas mul õnnestus hankida oma tegevuste andmed Stravast (väljavõte), arvutada uusi teadmisi (Transform) ning koostada "Kudos Graph" ja muud visualiseeringud, et teada, keda toetuse eest tänada (laadimine).

Aja jooksul leidsin, et see lähenemine oli suurepärane viis sarnaste andmeprojektide korraldamiseks. Viimane märkus enne sissehüppamist – kõik siin näidatud on reprodutseeritav ja kood on saadaval Githubis (link artikli lõpus), et saaksite ise luua.

Hakkame kodeerima!

Esimene asi, mida peame tegema, on autentimine, st saada juurdepääsuluba Stravast. Järgmine funktsioon teeb just seda POST-päringuga, mis sisaldab eelmises jaotises saadud üksikasju (kliendi ID, kliendi saladus, värskendusluba ja autoriseerimiskood) lõpp-punktile https://www.strava.com/oauth/token.

Selles jaotises loome kaks funktsiooni:

  1. Hankige kõigi profiili tegevuste loend.
    Kasutades eelnevalt saadud juurdepääsuluba ja määrates kaks kuupäeva, mis määratlevad meid huvitavate tegevuste ulatuse, saame kõigi nende kahe kuupäeva vahele jäävate tegevuste loendi ja nende peamised omadused.
  2. Hankige konkreetse tegevuse tunnustajate loend.
    Kahjuks ei sisaldu eelmise päringu tulemuses tegevuste tunnustajate nimekiri. Peame ehitama funktsiooni get_kudos, mis tagastab ühe tegevuse kudorite loendi, mis on identifitseeritud selle tegevuse_id järgi.

Nüüd, kui saime soovitud andmed, on mõte jätta alles vaid see, mida vajame, ja panna see Pandase andmeraami.

Allolev teisendusfunktsioon võtab tegevuste loendist välja järgmised andmed:

  1. Tegevuse ID, mida kasutatakse tegevuse kordumatu identifikaatorina.
  2. Iga tegevuse kiituste arv.
  3. Kõigi tegevuste tunnustajate loend, kasutades tsüklis funktsiooni get_kudos().
  4. Iga tegevuse kaugus.
  5. Iga tegevuse jaoks kuluv aeg.
  6. Tegevuse tüüp.

⚠️ Strava API kasutamisel on piirangud. Oleme piiratud 100 kõnega iga 15 minuti järel ja 1000 kõnega päevas.

Selles projektis kutsume API-le üks kord, et saada tegevuste loend, ja seejärel üks kord iga tegevuse kohta, et saada iga tegevuste kudorite loend.

See tähendab, et kui teil on vaadeldavas aknas rohkem kui 100 tegevust, siis kood sellisel kujul ei tööta ja peate seda API kasutuslimiidi järgimiseks veidi muutma.

Ainus asi, mida teha, on ära kasutada äsja loodud funktsioone ja hakata joonistama huvitavaid asju!

Enda puhul arvestan oma tegemistega 2022. aastal, tänaseks kuupäevaks — 24.

Meie andmestruktuurist on antud perioodil ülilihtne hankida mõned kõrgetasemelised KPI-d:

Kõrgetasemelised KPI-d – pilt autorilt

Kuna eelmises jaotises leidsime iga tegevuse jaoks spordiala, saame hõlpsalt uurida, kas teatud tüüpi tegevused saavad rohkem kiitust kui teised. Siin on keskmine tunnustuste arv tegevuste tüübi kohta:

Keskmine tunnustuste arv tegevuste tüübi kohta — pilt autori järgi

Isegi kui see ei ole kõige populaarsem tegevus, oli jooksmine see spordiala, kus mul oli kõige rohkem andmepunkte ja seega proovisin siin natuke rohkem kaevata. Võime proovida mõista, miks üks tegevus saab rohkem tunnustust kui teine. Vaatame võimalikku seost jooksudistantsi ja tegevusega saadavate kiituste arvu vahel.

Selgub, et seal tundub olevat positiivne korrelatsioon, st mida pikem on jooks, seda suurem on kiituste arv, nagu on näidatud alloleval graafikul.
Tõsi, selle tulemuse statistiline olulisus on vaieldav, arvestades vaadeldavate andmepunktide väikest arvu. Ainus kindel järeldus on see, et pean rohkem jooksma.

Võiksime analüüsiga edasi minna, vaadates teiste muutujate mõju, kuid jätan selle mõne teise artikli jaoks.

Positiivne korrelatsioon jooksudistantsi ja saadud kiituste arvu vahel — graafik autori järgi

Lõpuks saame joonistada "Kudos Graphi", kus näeme, kes on meie peamised toetajad, ja anname neile märku.
Muidugi on mõned inimesed Stravast rohkem sõltuvuses kui teised ja avaldavad oma tegevuste voogu allapoole kerides kiitust, teised aga avavad rakenduse vaid aeg-ajalt ja avaldavad tunnustust ainult kõige värskematele tegevustele, mida nad juhtuvad nägema.
See graafik ei tähenda mingil juhul inimeste hindamist selle üle, kas nad avaldavad kiitust või mitte, vaid lihtsalt illustreerivad uusi teadmisi, mida te ei näe kusagil mujal – isegi mitte rakenduse esmaklassilises versioonis.

"Kudos Graph", mis näitab suurimaid toetajaid – graafik autori järgi

Pole kahtlust, et kõigi Strava API-st saadavate andmetega saame veel palju ära teha. See oli lihtsalt esimene lask ebatavalisele küsimusele vastamiseks ja hea harjutus asjade käimatõmbamiseks.

Kui soovite oma Strava tegevusi analüüsida ja välja selgitada, kes on teie peamised toetajad, leiate kogu koodi siit:
https://github.com/Guigs11/strava_kudos

Täname, et lugesite artikli lõpuni!
Jätke julgelt allpool sõnum või võtke minuga ühendust
LinkedIn kui teil on küsimusi/märkusi!
Veel tulemas!

Kes on teie number 1 toetaja Stravas? Taasavaldatud allikast https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361?source=rss—-7f60cf5620c9—4 https://towardsdatascience.com/feed kaudu

<!–

->

Ajatempel:

Veel alates Blockchaini konsultandid