{"id":38424,"date":"2019-10-31T22:23:40","date_gmt":"2019-10-31T19:23:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\/"},"modified":"2026-07-06T16:02:25","modified_gmt":"2026-07-06T14:02:25","slug":"retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","title":{"rendered":"Retentioneering: kuidas me open-source t\u00f6\u00f6riistu tooteanal\u00fc\u00fcsiks Pythonis ja Pandas'is kirjutasime","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr. See artikkel k\u00e4sitleb nelja aasta arenduste tulemusi kasutajate liikumistrajektooride t\u00f6\u00f6tlemiseks m\u00f5eldud meetodite ja t\u00f6\u00f6riistade kogumile rakenduses v\u00f5i saidil. Arenduse autor on <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/mgodzi\/\">Maksim Godzi<\/a><\/noindex>, kes juhib toote loomise meeskonda ja on ka artikli autor. Toode sai nimeks Retentioneering, n\u00fc\u00fcd on see muudetud avatud l\u00e4htekoodiga raamatukoguks ja paigutatud Githubi, et iga\u00fchel oleks v\u00f5imalik seda kasutada. See v\u00f5ib huvi pakkuda neile, kes tegelevad toote- ja turundusanaly\u00fcsiga, toote edendamise ja arendamisega. Muide, Habril <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/binarydistrict\/blog\/437534\/\">on juba ilmunud artikkel Retentioneeringu kohta \u00fche juhtumi raames<\/a><\/noindex>. Uues materjalis r\u00e4\u00e4gitakse sellest, milleks toode v\u00f5imeline on ja kuidas seda saab kasutada.<\/p>\n<p>Lugedes artiklit, suudate ka te ise kirjutada oma Retentioneeringi, milleks v\u00f5ib olla iga standardiseeritud meetod kasutajate liikumistrajektooride t\u00f6\u00f6tlemiseks rakenduses ja selle v\u00e4listes aspektides, mis v\u00f5imaldab detailselt n\u00e4ha k\u00e4itumise ise\u00e4rasusi ja saada sellest \u00e4riliste n\u00e4itajate kasvu jaoks sisendeid. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Mis on Retentioneering ja milleks seda vaja on?<\/h3>\n<p>\nAlguses oli meie eesm\u00e4rgiks viia Growth Hacking \u00abdigitootmise maagia\u00bb maailmast numbrite, anal\u00fc\u00fcsi ja prognoosimise maailma. Selle tulemusena \u2014 toote anal\u00fc\u00fcs viidud puhta matemaatika ja programmeerimise tasemele neile, kes eelistavad fantastiliste lugude asemel numbreid ja valemid nutikatele s\u00f5nadele nagu \u00abbr\u00e4ndi uuendamine\u00bb, \u00abrepositsioonimine\u00bb jms, mis k\u00f5lavad kenasti, kuid on praktikas \u00fcsna kasinad. <\/p>\n<p>Nende \u00fclesannete lahendamiseks oli vajalik graafide ja trajektooridega anal\u00fc\u00fcsi raamistik, samuti raamatukogu, mis lihtsustaks anal\u00fc\u00fctiku t\u00fc\u00fcpilisi rutiine, kui viisi toote anal\u00fc\u00fcsi regulaarsete \u00fclesannete kirjeldamiseks, mis oleks arusaadav nii inimestele kui ka robotitele. Raamatukogu pakub v\u00f5imalust kirjeldada kasutajate k\u00e4itumist ja siduda see toote \u00e4riliste n\u00e4itajatega sellisel formaalsel ja selgel keeles, et lihtsustada ja automatiseerida arendajate ja anal\u00fc\u00fctikute rutiinseid \u00fclesandeid ning kergendada nende suhtlemist ettev\u00f5ttega.<\/p>\n<p><b>Retentioneering on meetod ja anal\u00fc\u00fctilised tarkvarat\u00f6\u00f6riistad, mida saab kohandada ja integreerida igasse digitaalset (ja mitte ainult) toodet. <\/b><\/p>\n<p>Me alustasime toote arendamist 2015. aastal. Praegu on see juba valmis, kuigi mitte veel ideaalne t\u00f6\u00f6riistade komplekt Pythonis ja Pandas, mis aitavad andmetega t\u00f6\u00f6tada, masin\u00f5ppe mudelid sklearn-like api'ga, masin\u00f5ppe mudelite tulemuste t\u00f5lgendamise t\u00f6\u00f6riistad eli5 ja shap. <\/p>\n<p>K\u00f5ik see on pakitud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">mugavasse avatud l\u00e4htekoodiga teeki, mis on saadaval avatud Githubi hoidlas \u2014 retentioneering-tools.<\/a><\/noindex>Teegi kasutamine ei ole keeruline, praktiliselt iga inimene, kes armastab tooteanal\u00fc\u00fctikat, kuid pole kunagi koodi kirjutanud, v\u00f5ib rakendada meie anal\u00fc\u00fcsimeetodeid oma andmetele iseseisvalt ja ilma m\u00e4rkimisv\u00e4\u00e4rse aja raiskamiseta. <\/p>\n<p>Ja programmeerija, rakenduse looja v\u00f5i arenduse v\u00f5i testimise meeskonna liige, kes pole varem anal\u00fc\u00fctikaga tegelenud, v\u00f5ib alustada selle koodiga m\u00e4ngimist ja n\u00e4ha oma rakenduse kasutamistrende ilma v\u00e4list abi kaasamata. <\/p>\n<h3>Kasutaja trajektoor kui anal\u00fc\u00fcsi p\u00f5hielement ja meetodid selle t\u00f6\u00f6tlemiseks<\/h3>\n<p>\n<b>Kasutaja trajektoor on kasutaja olekute j\u00e4rjestus teatud ajapunktides.<\/b> Ja s\u00fcndmused v\u00f5ivad tulla erinevatest andmeallikatest, nii veebis kui ka f\u00fc\u00fcsiliselt. S\u00fcndmused, mis juhtusid kasutajaga, on osa tema trajektoorist. N\u00e4ited:<br \/>\n\u2022 vajutas nuppu<br \/>\n\u2022 n\u00e4gi pilti<br \/>\n\u2022 sattus ekraanile<br \/>\n\u2022 sai e-kirja<br \/>\n\u2022 soovitas toodet s\u00f5brale<br \/>\n\u2022 t\u00e4itis vormi<br \/>\n\u2022 puudutas ekraani<br \/>\n\u2022 keris alla<br \/>\n\u2022 l\u00e4ks kassasse<br \/>\n\u2022 tellis burrito<br \/>\n\u2022 s\u00f5i burrito<br \/>\n\u2022 m\u00fcrgistus s\u00f6\u00f6dud burritost<br \/>\n\u2022 sisenes kohvikusse tagaukse kaudu<br \/>\n\u2022 sisenes peaukse kaudu<br \/>\n\u2022 sulges rakenduse<br \/>\n\u2022 sai push-teate<br \/>\n\u2022 tuimles ekraanil pikemat aega X<br \/>\n\u2022 maksis tellimuse eest<br \/>\n\u2022 v\u00f5ttis tellimuse vastu<br \/>\n\u2022 sai laenutaotluse tagasi l\u00fckatud<\/p>\n<p>Kui v\u00f5tta andmed trajektooride grupist ja uurida, kuidas \u00fcleminekud toimivad, saab j\u00e4lgida, kuidas nende k\u00e4itumine rakenduses kujuneb. Seda on mugav teha graafi kaudu, kus olekud on s\u00f5lmed ja \u00fcleminekud olekute vahel on \u00e4\u00e4red:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: kuidas me open-source t\u00f6\u00f6riistu tooteanal\u00fc\u00fcsiks Pythonis ja Pandas&#039;is kirjutasime\" src=\"\/wp-content\/uploads\/2019\/09\/07d7a7cf4f023f5d42ef9b31ed07a0ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n\u201eTee\u201c on v\u00e4ga mugav m\u00f5iste \u2013 see sisaldab \u00fcksikasjalikku teavet k\u00f5igi kasutaja tegevuste kohta, v\u00f5imaldades lisada sellele tegevusele igasuguseid t\u00e4iendavaid andmeid. See teeb sellest universaalse objekti. Kui teil on ilusad ja mugavad t\u00f6\u00f6riistad, mis v\u00f5imaldavad t\u00f6\u00f6tada teede v\u00f5i trajektooridega, saab leida sarnasusi ja need segmenteerida.<\/p>\n<p>Trajektuuride segmentimine v\u00f5ib esmapilgul tunduda v\u00e4ga keeruline. Tavalistes olukordades on see t\u00f5esti nii \u2013 tuleb kasutada seosmatrice v\u00f5rdlemist v\u00f5i j\u00e4rjestuste joondamist. Oleme leidnud lihtsama viisi \u2013 uurida suurt hulka trajektoore ja segmenteerida need klasterdamise kaudu.<\/p>\n<p>K\u00e4ib jutt, et trajektoori saab muuta punktiks, kasutades pidevaid esitlusi, n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"http:\/\/datameetsmedia.com\/bag-of-words-tf-idf-explained\/\">TF-IDF<\/a><\/noindex>. P\u00e4rast transformatsiooni muutub trajektoor punktiks ruumis, kus telgedel on erinevate s\u00fcndmuste ja nende vaheliste \u00fcleminekute normeeritud esinemissagedus. Seda asja, mille m\u00f5\u00f5tmed ulatuvad tuhandetesse (dimS=sum(event types)+sum(ngrams_2 types)), on v\u00f5imalik projekteerida tasandile m\u00f5ne muu kaudu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.quora.com\/How-does-t-SNE-work-in-simple-words\">TSNE<\/a><\/noindex>. TSNE \u2013 transformatsioon, v\u00e4hendab ruumi m\u00f5\u00f5tmeid kuni 2 teljeni ning s\u00e4ilitab v\u00f5imaluse korral punktidevahelised suhtelised kaugused. Seega on olnud v\u00f5imalik tasapinnal, kujuteldavas projitseeritud trajektooride kaardil uurida, kuidas erinevate trajektooride punktid \u00fcksteisega paiknesid. Anal\u00fc\u00fcsitakse, kui l\u00e4hedased v\u00f5i erinevad nad olid, kas nad moodustasid klastreid v\u00f5i hajusid kaardile jne:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: kuidas me open-source t\u00f6\u00f6riistu tooteanal\u00fc\u00fcsiks Pythonis ja Pandas&#039;is kirjutasime\" src=\"\/wp-content\/uploads\/2019\/09\/3f0386c33885cb842aec8ec01a5f47ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRetentioneeringi anal\u00fc\u00fcsi t\u00f6\u00f6riistad v\u00f5imaldavad keeruliste andmehulkade ja trajektooride muutmist esitlemiseks, mida saab omavahel v\u00f5rrelda ning seej\u00e4rel uurida ja t\u00f5lgendada transformatsiooni tulemust.<\/p>\n<p>R\u00e4\u00e4kides standardsetest trajektoori t\u00f6\u00f6tlemise meetoditest, m\u00f5eldakse kolmele peamisele t\u00f6\u00f6riistale, mida oleme Retentioneeringis rakendanud \u2013 graafid, step-matriid ja trajektooride projektsioonikaardid. <\/p>\n<p>T\u00f6\u00f6 Google Analyticsi, Firebase'i ja sarnaste anal\u00fc\u00fcsis\u00fcsteemidega on piisavalt keeruline ja mitte 100% efektiivne. Probleem peitub mitmesugustes kasutaja piirangutes, mille tulemusena seisab anal\u00fc\u00fctiku t\u00f6\u00f6 sellistes s\u00fcsteemides klikkide ja l\u00f5igete valikute ees. Retentioneering v\u00f5imaldab t\u00f6\u00f6tada kasutajate trajektooridega, mitte ainult funnelitega, nagu Google Analyticsis, kus detailsuse tase sageli piirdub funneliga, olgu see ehitatud m\u00f5nele segmendile. <\/p>\n<h3>Retentioneering ja juhtumiuuringud<\/h3>\n<p>\nKasutusn\u00e4itena arendatud t\u00f6\u00f6riistast v\u00f5ib tuua suure ni\u0161iteenuse juhtumiuuringu Venemaal. Sellel ettev\u00f5ttel on Androidi mobiilirakendus, mis on klientide seas populaarne. Aasta k\u00e4ive mobiilirakendusest oli umbes 7 miljonit rubla, hooajalised k\u00f5ikumised j\u00e4\u00e4vad vahemikku 60\u2013130 tuhat. Samas ettev\u00f5ttes on ka iOS-i rakendus, ning '\u00f5unarakenduse' keskmine tellimuse v\u00e4\u00e4rtus oli k\u00f5rgem kui Android-rakenduse kasutajate keskmine tellimuse v\u00e4\u00e4rtus \u2013 1080 rubla v\u00f5rreldes 1300 rubla.<\/p>\n<p>Ettev\u00f5te otsustas suurendada Android-rakenduse efektiivsust ning viis l\u00e4bi p\u00f5hjaliku anal\u00fc\u00fcsi. Koostati mitmeid k\u00fcmneid h\u00fcpoteese rakenduse tulemuslikkuse suurendamiseks. P\u00e4rast Retentioneeringi kasutamist selgus, et probleemiks olid s\u00f5numid, mida n\u00e4idati uutele kasutajatele. Nad said teavet br\u00e4ndi, ettev\u00f5tte eeliste ja hindade kohta. Kuid nagu selgus, pidid s\u00f5numid aitama kasutajal rakendusega t\u00f6\u00f6tama \u00f5ppida. <\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: kuidas me open-source t\u00f6\u00f6riistu tooteanal\u00fc\u00fcsiks Pythonis ja Pandas&#039;is kirjutasime\" src=\"\/wp-content\/uploads\/2019\/09\/9e6718eb967ae65d047605e4b8a92b3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee ka tehti, mille tulemuseks oli rakenduste v\u00e4hem eemaldamine ja tellimuste konversioon kasv 23%. Alguses suunati testimiseks 20% sissetulevast liiklusest, kuid m\u00f5ne p\u00e4eva p\u00e4rast, anal\u00fc\u00fcsides esimesi tulemusi ja hinnates trende \u2013 muudeti proportsioonid vastupidiseks ja j\u00e4eti 20% kontrollgrupi jaoks, samas kui kaheksak\u00fcmmend suunati testimiseks. Veel n\u00e4dala p\u00e4rast otsustati j\u00e4rk-j\u00e4rgult lisada veel kahe h\u00fcpoteesi testimist. Kokku seitse n\u00e4dalat hiljem kasvas Android-rakenduse k\u00e4ive pooleteise korra v\u00f5rra v\u00f5rreldes eelmise tasemega.<\/p>\n<h3>Kuidas Retentioneeringiga t\u00f6\u00f6tada?<\/h3>\n<p>\nEsimesed sammud on piisavalt lihtsad \u2014 laadige\u5eabpip install retentioneering. Repositooriumis on valmis n\u00e4ited ja andmet\u00f6\u00f6tluse juhtumid m\u00f5nede tooteanal\u00fc\u00fcsi \u00fclesannete jaoks. Kogumit t\u00e4iendatakse pidevalt ja seda on piisavalt, et alustuseks tutvuda. Iga\u00fcks saab kasutada valmis mooduleid ja rakendada neid oma \u00fclesannetele \u2014 see v\u00f5imaldab kiiresti ja t\u00f5husalt seadistada protsessi, et anal\u00fc\u00fcsida ja optimeerida kasutajaid. K\u00f5ik see v\u00f5imaldab leida rakenduse kasutamise mustreid arusaadava koodi kaudu ja jagada seda kogemust kolleegidega.<\/p>\n<p>Retentioneering on t\u00f6\u00f6riist, mida tasub kasutada kogu rakenduse eluea jooksul, ja siin on miks:<\/p>\n<ul>\n<li>Retentioneering on efektiivne kasutajate teekondade j\u00e4lgimiseks ja pidevaks optimeerimiseks, et parandada \u00e4rin\u00e4itajaid. N\u00e4iteks e-kaubanduse rakendustes lisatakse sageli uusi funktsioone, mille m\u00f5ju tootele ei ole alati \u00f5igeusu ennustada. M\u00f5nedel juhtudel tekivad probleemid uute ja vanade funktsioonide \u00fchilduvusega \u2014 n\u00e4iteks, uued \u201ckanibaliseerivad\u201d juba olemasolevad. Sellises olukorras on pidev teekondade anal\u00fc\u00fcs v\u00e4ga vajalik. <\/li>\n<li>Sarnane olukord on ka reklaamikanalitega: pidevalt testitakse uusi liiklusallikaid ja reklaamikreatiive, tuleb j\u00e4lgida hooajalisi muutusi, trende ja teiste s\u00fcndmuste m\u00f5ju, mis toob kaasa uusi probleemiklasside ilmumise. Siin on samuti vajalik pidev j\u00e4lgimine ja kasutajamehhanika t\u00f5lgendamine. <\/li>\n<li>On terve rida tegureid, mis pidevalt m\u00f5jutavad rakenduse t\u00f6\u00f6d. N\u00e4iteks, arendajate uued v\u00e4ljaanded: lahendades aktuaalse probleemi, toovad nad tahtmatult tagasi vana v\u00f5i loovad t\u00e4iesti uue. Aja jooksul kasvab uute v\u00e4ljaannete arv ja vigade j\u00e4lgimise protsess tuleb automatiseerida \u2014 sealhulgas kasutajate teekondade anal\u00fc\u00fcsi abil.<\/li>\n<\/ul>\n<p>\n\u00dcldiselt on Retentioneering efektiivne t\u00f6\u00f6riist. Kuid t\u00e4iuslikkuse piire ei ole \u2014 seda saab ja tuleb t\u00e4iustada, arendada ning selle alusel uusi tooteid luua. Mida aktiivsem on projekti kogukond, seda rohkem tekib hargnemisi ja uusi huvitavaid kasutusv\u00f5imalusi.<\/p>\n<p>Lisainfot Retentioneeringi t\u00f6\u00f6riistade kohta:<\/p>\n<ul>\n<li>Meie veebisait: <noindex><a rel=\"nofollow\" href=\"http:\/\/retentioneering.com\">retentioneering.com<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/retentioneering.tilda.ws\/#rec89053099\">Kohtumiste ajakava<\/a><\/noindex> ja osav\u00f5tu registreerimine<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/t-do.ru\/retentioneering_meetups\">Toodete ja anal\u00fc\u00fctikute vestlus Telegramis<\/a><\/noindex><\/li>\n<li>Tasuta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">Retentioneeringi hoidla GitHubis<\/a><\/noindex> <\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/468721\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435. \u0410\u0432\u0442\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u041c\u0430\u043a\u0441\u0438\u043c \u0413\u043e\u0434\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0442\u043e\u0438\u0442 \u0432\u043e \u0433\u043b\u0430\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043e\u043d \u0436\u0435 \u2014 \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438. \u0421\u0430\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 Retentioneering, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 open-source \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043d\u0430 Github, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28843,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38424","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Retentioneering: \u043a\u0430\u043a \u043c\u044b open-source \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Python \u0438 Pandas \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:23:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-06T14:02:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Retentioneering: kuidas me open-source t\u00f6\u00f6riistad tooteanal\u00fc\u00fctikaks Pythonis ja Pandas'is kirjutasime | ProHoster","description":"Tere, Habr. See artikkel k\u00e4sitleb nelja aasta arendust\u00f6\u00f6d kasutajate liikumistee t\u00f6\u00f6tlemise meetodite ja t\u00f6\u00f6riistade komplekti.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Retentioneering: \u043a\u0430\u043a \u043c\u044b open-source \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Python \u0438 Pandas \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0438\u0442\u043e\u0433\u0430\u043c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u043b\u0435\u0442\u043d\u0435\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:23:40+00:00","article:modified_time":"2026-07-06T14:02:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38424","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 22:00:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:09:23","updated":"2026-01-23 22:00:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=38424"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38424\/revisions"}],"predecessor-version":[{"id":182486,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38424\/revisions\/182486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28843"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=38424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=38424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=38424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}