{"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\/ro\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","title":{"rendered":"Retentioneering: cum am scris instrumente open-source pentru analiza produselor \u00een Python \u0219i Pandas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Salut, Habr. Acest articol este dedicat rezultatelor celor patru ani de dezvoltare a unui set de metode \u0219i instrumente pentru procesarea traiectoriilor de mi\u0219care ale utilizatorilor \u00een aplica\u021bie sau pe site. Autorul dezvolt\u0103rii este <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/mgodzi\/\">Maxim Godzi<\/a><\/noindex>, care se afl\u0103 la conducerea echipei de creatori ai produsului, el fiind totodat\u0103 autorul articolelor. Produsul a primit denumirea de Retentioneering, iar acum a fost transformat \u00eentr-o bibliotec\u0103 open-source \u0219i a fost publicat pe Github, pentru ca oricine s\u0103 poat\u0103 profita de acesta. Totul poate fi interesant pentru cei care sunt implica\u021bi \u00een analiza de produs \u0219i marketing, promovarea \u0219i dezvoltarea produsului. Apropo, pe Habr <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/binarydistrict\/blog\/437534\/\">a mai fost publicat un articol despre unul dintre cazurile de utilizare a Retentioneering<\/a><\/noindex>. \u00cen noul material se vorbe\u0219te despre ce poate face produsul \u0219i cum poate fi utilizat.<\/p>\n<p>Citind articolul, ve\u021bi fi capabili s\u0103 v\u0103 scrie\u021bi propriul Retentioneering, acesta put\u00e2nd fi orice metod\u0103 standardizat\u0103 de procesare a traiectoriilor utilizatorilor \u00een aplica\u021bie \u0219i dincolo de aceasta, care permite s\u0103 vedem \u00een detaliu caracteristicile comportamentului \u0219i s\u0103 extragem din acestea informa\u021bii pentru cre\u0219terea metricilor de afaceri. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Ce este Retentioneering \u0219i de ce este nevoie de acesta?<\/h3>\n<p>\nIni\u021bial, scopul nostru a fost s\u0103 traducem Growth Hacking din lumea \u201evr\u0103jitoriei digitale\u201d \u00een lumea cifrelor, analizei \u0219i prognozelor. Ca urmare, am redus analiza de produs la matematic\u0103 pur\u0103 \u0219i programare pentru cei care prefer\u0103 cifrele \u00een loc de pove\u0219ti fantastice, iar formulele \u00een loc de termeni sofisticati precum \u201erebranding\u201d, \u201erepozi\u021bionare\u201d \u0219i a\u0219a mai departe, care sun\u0103 frumos, dar \u00een practic\u0103 ajut\u0103 pu\u021bin. <\/p>\n<p>Pentru a rezolva aceste sarcini, a fost necesar un cadru pentru analiz\u0103 prin grafuri \u0219i traiectorii, \u0219i \u00een acela\u0219i timp o bibliotec\u0103 care s\u0103 simplifice rutinele tipice ale analistului, ca mod de descriere a sarcinilor regulate din analiza de produs, care s\u0103 fie clar at\u00e2t pentru oameni, c\u00e2t \u0219i pentru robo\u021bi. Biblioteca ofer\u0103 posibilitatea de a descrie comportamentul utilizatorilor \u0219i de a-l lega de metricile de afaceri ale produsului \u00eentr-un limbaj formal \u0219i clar, pentru a simplifica \u0219i automatiza sarcinile de rutin\u0103 ale dezvoltatorilor \u0219i analistilor, \u0219i pentru a facilita comunicarea lor cu afacerea.<\/p>\n<p><b>Retentioneering \u2014 o metod\u0103 \u0219i instrumente software analitice care pot fi adaptate \u0219i integrate \u00een orice produs digital (\u0219i nu numai). <\/b><\/p>\n<p>Am \u00eenceput lucrul la produs \u00een 2015. Acum este deja un set de instrumente gata, de\u0219i \u00eenc\u0103 nu perfect, pentru lucrul cu datele, bazat pe Python \u0219i Pandas, modele de \u00eenv\u0103\u021bare automat\u0103 cu API similar sklearn, instrumente de interpretare a rezultatelor modelelor de \u00eenv\u0103\u021bare automat\u0103 eli5 \u0219i shap. <\/p>\n<p>Toate acestea sunt ambalate <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">\u00eentr-o bibliotec\u0103 open-source convenabil\u0103 \u00een depozitul deschis de pe Github \u2014 retentioneering-tools.<\/a><\/noindex>Utilizarea bibliotecii nu este complicat\u0103, practic orice persoan\u0103 care iube\u0219te analiza produsului, dar nu a scris niciodat\u0103 cod, poate aplica metodele noastre analitice pe propriile date, singur\u0103 \u0219i f\u0103r\u0103 eforturi considerabile de timp. <\/p>\n<p>Iar un programator, creator de aplica\u021bii sau membru al echipei de dezvoltare sau testare, care nu a avut anterior vreo experien\u021b\u0103 \u00een analytics, poate \u00eencepe s\u0103 experimenteze cu acest cod \u0219i s\u0103 observe tiparele de utilizare ale aplica\u021biei sale f\u0103r\u0103 ajutor extern. <\/p>\n<h3>Traiectoria utilizatorului ca element de baz\u0103 \u00een analiz\u0103 \u0219i metodele de procesare ale acesteia.<\/h3>\n<p>\n<b>Traiectoria utilizatorului este secven\u021ba st\u0103rilor utilizatorului \u00een momente temporale specifice.<\/b> Evenimentele pot proveni din diferite surse de date, at\u00e2t online c\u00e2t \u0219i offline. Evenimentele care s-au \u00eent\u00e2mplat utilizatorului sunt parte din traiectoria sa. Exemple:<br \/>\n\u2022 a ap\u0103sat pe un buton<br \/>\n\u2022 a v\u0103zut o imagine<br \/>\n\u2022 a ajuns la un ecran<br \/>\n\u2022 a primit un email<br \/>\n\u2022 a recomandat produsul unui prieten<br \/>\n\u2022 a completat un formular<br \/>\n\u2022 a atins ecranul<br \/>\n\u2022 a derulat<br \/>\n\u2022 a mers la cas\u0103<br \/>\n\u2022 a comandat un burrito<br \/>\n\u2022 a m\u00e2ncat burrito<br \/>\n\u2022 s-a \u00eemboln\u0103vit de burrito<br \/>\n\u2022 a intrat \u00een cafea pe u\u0219a din spate<br \/>\n\u2022 a intrat pe u\u0219a principal\u0103<br \/>\n\u2022 a \u00eenchis aplica\u021bia<br \/>\n\u2022 a primit o notificare push<br \/>\n\u2022 a stat blocat pe ecran mai mult timp X<br \/>\n\u2022 a pl\u0103tit comanda<br \/>\n\u2022 a ridicat comanda<br \/>\n\u2022 a primit un refuz la credit<\/p>\n<p>Dac\u0103 lu\u0103m datele traiectoriilor unui grup de utilizatori \u0219i analiz\u0103m cum se desf\u0103\u0219oar\u0103 tranzi\u021biile, putem urm\u0103ri exact cum se construie\u0219te comportamentul lor \u00een aplica\u021bie. Este convenabil s\u0103 facem acest lucru printr-un grafic, \u00een care st\u0103rile sunt noduri, iar tranzi\u021biile \u00eentre st\u0103ri sunt arce:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: cum am scris instrumente open-source pentru analiza produselor \u00een Python \u0219i Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/07d7a7cf4f023f5d42ef9b31ed07a0ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n\u201eTraiectoria\u201d este un concept foarte util \u2013 con\u021bine informa\u021bii detaliate despre toate ac\u021biunile utilizatorului, cu posibilitatea de a ad\u0103uga orice date suplimentare \u00een descrierea acestor ac\u021biuni. Acest lucru o face un obiect universal. Dac\u0103 ave\u021bi instrumente frumoase \u0219i convenabile care permit lucrul cu traiectoriile, pute\u021bi identifica similarit\u0103\u021bi \u0219i le pute\u021bi segmenta.<\/p>\n<p>Segmentarea traiectoriilor poate p\u0103rea ini\u021bial un proces foarte complicat. \u00cen situa\u021bii obi\u0219nuite, chiar a\u0219a este \u2013 este nevoie de compara\u021bia matricei de conexiuni sau de alinierea secven\u021belor. Am reu\u0219it s\u0103 g\u0103sim o metod\u0103 mai simpl\u0103 \u2013 studiind un num\u0103r mare de traiectorii \u0219i segment\u00e2ndu-le prin clustering.<\/p>\n<p>Se pare c\u0103 este posibil s\u0103 transform\u0103m o traiectorie \u00eentr-un punct folosind reprezent\u0103ri continue, de exemplu, <noindex><a rel=\"nofollow\" href=\"http:\/\/datameetsmedia.com\/bag-of-words-tf-idf-explained\/\">TF-IDF<\/a><\/noindex>. Dup\u0103 transformare, traiectoria devine un punct \u00een spa\u021biu, unde pe axe este reprezentat\u0103 frecven\u021ba normalizat\u0103 \u00een traiectorie a diferitelor evenimente \u0219i tranzi\u021bii \u00eentre acestea. Aceast\u0103 entitate dintr-un spa\u021biu masiv cu o mie sau mai multe dimensiuni (dimS=sum(event types)+sum(ngrams_2 types)) poate fi proiectat\u0103 pe un plan folosind <noindex><a rel=\"nofollow\" href=\"https:\/\/www.quora.com\/How-does-t-SNE-work-in-simple-words\">TSNE<\/a><\/noindex>. TSNE \u2013 transformarea, reduce dimensiunea spa\u021biului la 2 axe \u0219i, pe c\u00e2t posibil, p\u0103streaz\u0103 distan\u021bele relative \u00eentre puncte. Astfel, devine posibil pe o hart\u0103 plat\u0103, o hart\u0103 proiec\u021bional\u0103 a traiectoriilor, s\u0103 studiem cum erau a\u0219ezate \u00eentre ele punctele diferitelor traiectorii. Se analizeaz\u0103 c\u00e2t de apropiate sau diferite erau \u00eentre ele, dac\u0103 formau clustere sau se dispersau pe hart\u0103 etc.:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: cum am scris instrumente open-source pentru analiza produselor \u00een Python \u0219i Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/3f0386c33885cb842aec8ec01a5f47ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nInstrumentele analitice Retentioneering ofer\u0103 posibilitatea de a transforma un set complex de date \u0219i traiectorii \u00eentr-o reprezentare care poate fi comparat\u0103 \u00eentre ele, iar apoi s\u0103 investighezi \u0219i s\u0103 interpretezi rezultatul transform\u0103rii.<\/p>\n<p>Vorbind despre metodele standard de prelucrare a traiectoriilor, ne referim la trei instrumente de baz\u0103 pe care le-am implementat \u00een Retentioneering \u2013 grafuri, matrice de pa\u0219i \u0219i h\u0103r\u021bi de proiec\u021bie a traiectoriilor. <\/p>\n<p>Lucrul cu Google Analytics, Firebase \u0219i sisteme similare de analiz\u0103 este destul de complicat \u0219i nu este 100% eficient. Problema const\u0103 \u00een o serie de restric\u021bii pentru utilizatori, ceea ce face ca munca analistului s\u0103 se limiteze la clicuri pe mouse \u0219i selec\u021bii de segmente. Retentioneering ofer\u0103 posibilitatea de a lucra cu traiectoriile utilizatorilor, nu doar cu jgheaburile, a\u0219a cum se \u00eent\u00e2mpl\u0103 \u00een Google Analytics, unde nivelul de detaliere se reduce adesea la jgheabul construit pentru un anumit segment. <\/p>\n<h3>Retentioneering \u0219i cazuri<\/h3>\n<p>\nCa exemplu de utilizare a instrumentului dezvoltat, putem men\u021biona un caz al unui serviciu de ni\u0219\u0103 mare din Rusia. Aceast\u0103 companie are o aplica\u021bie mobil\u0103 pentru Android, care este popular\u0103 printre clien\u021bi. Venitul anual din aplica\u021bia mobil\u0103 a fost de aproximativ 7 milioane de ruble, cu fluctua\u021bii sezoniere \u00eentre 60 \u0219i 130 de mii. Aceea\u0219i companie are \u0219i o aplica\u021bie pentru iOS, iar valoarea medie a comenzii utilizatorului aplica\u021biei \u201eApple\u201d a fost mai mare dec\u00e2t cea a clientului care folose\u0219te aplica\u021bia Android \u2014 1080 ruble fa\u021b\u0103 de 1300 ruble.<\/p>\n<p>Compania a decis s\u0103 creasc\u0103 eficien\u021ba aplica\u021biei Android, desf\u0103\u0219ur\u00e2nd o analiz\u0103 am\u0103nun\u021bit\u0103. Au fost formulate c\u00e2teva zeci de ipoteze pentru cre\u0219terea eficien\u021bei aplica\u021biei. Dup\u0103 utilizarea Retentioneering, s-a constatat c\u0103 problema era mesajele afi\u0219ate utilizatorilor noi. Ace\u0219tia primeau informa\u021bii despre marc\u0103, avantajele companiei \u0219i pre\u021buri. Dar, a\u0219a cum s-a dovedit, mesajele ar fi trebuit s\u0103 ajute utilizatorul s\u0103 \u00eenve\u021be cum s\u0103 foloseasc\u0103 aplica\u021bia. <\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: cum am scris instrumente open-source pentru analiza produselor \u00een Python \u0219i Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/9e6718eb967ae65d047605e4b8a92b3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcest lucru a fost realizat, rezult\u00e2nd c\u0103 aplica\u021bia a fost dezinstalat\u0103 mai rar, iar cre\u0219terea conversiei \u00een comenzi a fost de 23%. La \u00eenceput, un procent de 20 din traficul total a fost alocat pentru testare, dar dup\u0103 c\u00e2teva zile, analiz\u00e2nd primele rezultate \u0219i evalu\u00e2nd tendin\u021ba \u2014 au schimbat propor\u021biile, l\u0103s\u00e2nd 20% pentru grupul de control \u0219i plas\u00e2nd 80% \u00een test. Dup\u0103 o s\u0103pt\u0103m\u00e2n\u0103, s-a decis s\u0103 se adauge treptat testarea a \u00eenc\u0103 dou\u0103 ipoteze. \u00cen total, dup\u0103 \u0219apte s\u0103pt\u0103m\u00e2ni, venitul din aplica\u021bia Android a crescut cu 50% fa\u021b\u0103 de nivelul precedent.<\/p>\n<h3>Cum s\u0103 lucrezi cu Retentioneering?<\/h3>\n<p>\nPrimii pa\u0219i sunt destul de simpli - \u00eenc\u0103rca\u021bi biblioteca cu comanda pip install retentioneering. \u00cen depozitul se g\u0103sesc exemple gata preg\u0103tite \u0219i cazuri de prelucrare a datelor pentru anumite sarcini de analiz\u0103 a produselor. Setul este constant extins, deocamdat\u0103 este suficient pentru o prim\u0103 familiarizare. Oricine poate lua modulele gata f\u0103cute \u0219i le poate aplica imediat la sarcinile sale - acest lucru permite configurarea rapid\u0103 a unui proces de analiz\u0103 detaliat\u0103 \u0219i optimizare a parcursurilor utilizatorilor. Toate acestea ofer\u0103 posibilitatea de a g\u0103si modele de utilizare a aplica\u021biei printr-un cod clar \u0219i de a \u00eemp\u0103rt\u0103\u0219i aceast\u0103 experien\u021b\u0103 colegilor.<\/p>\n<p>Retentioneering este un instrument pe care ar trebui s\u0103-l utiliza\u021bi pe parcursul \u00eentregii durate de via\u021b\u0103 a aplica\u021biei \u0219i iat\u0103 de ce:<\/p>\n<ul>\n<li>Retentioneering este eficient pentru urm\u0103rirea \u0219i optimizarea continu\u0103 a parcursurilor utilizatorilor \u0219i pentru \u00eembun\u0103t\u0103\u021birea indicatorilor de afaceri. Astfel, \u00een aplica\u021biile de comer\u021b electronic, deseori se adaug\u0103 noi func\u021bii, iar impactul acestora asupra produsului nu poate fi \u00eentotdeauna prezis corect. \u00cen unele cazuri, apar probleme de compatibilitate \u00eentre func\u021biile noi \u0219i cele vechi - de exemplu, cele noi \"canibaliz\u00e2nd\" deja existente. \u00cen aceast\u0103 situa\u021bie, este necesar\u0103 o analiz\u0103 constant\u0103 a parcursurilor. <\/li>\n<li>O situa\u021bie similar\u0103 apare \u0219i \u00een lucrul cu canalele publicitare: sunt testate constant noi surse de trafic \u0219i crea\u021bii publicitare, este necesar\u0103 monitorizarea sezonalit\u0103\u021bii, tendin\u021belor \u0219i impactului altor evenimente, ceea ce conduce la apari\u021bia unor noi clase de probleme. Aici, de asemenea, este necesar\u0103 o monitorizare constant\u0103 \u0219i interpretarea mecanicilor utilizatorilor. <\/li>\n<li>Exist\u0103 o serie de factori care influen\u021beaz\u0103 constant func\u021bionarea aplica\u021biei. De exemplu, noile versiuni de la dezvoltatori: rezolv\u00e2nd o problem\u0103 actual\u0103, ei, f\u0103r\u0103 s\u0103 vrea, pot reintroduce o problem\u0103 veche sau pot crea una complet nou\u0103. Cu timpul, num\u0103rul de versiuni noi cre\u0219te, iar procesul de urm\u0103rire a erorilor trebuie automatizat - inclusiv prin analiza parcursurilor utilizatorilor.<\/li>\n<\/ul>\n<p>\n\u00cen general, Retentioneering este un instrument eficient. Dar perfec\u021biunea nu are limite - poate \u0219i trebuie \u00eembun\u0103t\u0103\u021bit, dezvoltat, put\u00e2nd fi construite produse noi interesante pe baza lui. Cu c\u00e2t comunitatea proiectului va fi mai activ\u0103, cu at\u00e2t vor ap\u0103rea mai multe fork-uri, iar noi variante interesante de utilizare vor ap\u0103rea.<\/p>\n<p>Informa\u021bii suplimentare despre instrumentele Retentioneering:<\/p>\n<ul>\n<li>Site-ul nostru: <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\">Programul \u00eent\u00e2lnirilor<\/a><\/noindex> \u0219i \u00eenscrierea pentru participare<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/t-do.ru\/retentioneering_meetups\">Chat de produse \u0219i anali\u0219ti pe Telegram<\/a><\/noindex><\/li>\n<li>Gratuit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">repository-ul Retentioneering pe GitHub<\/a><\/noindex> <\/li>\n<\/ul>\n<p>Sursa: <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.2.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\/ro\/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.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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: cum am creat open-source instrumente pentru analiza produselor pe Python \u0219i Pandas | ProHoster","description":"Salut, Habr. Acest articol este dedicat rezultatelor a patru ani de dezvoltare a unui set de metode \u0219i instrumente pentru procesarea traiectoriilor utilizatorilor \u00een aplica\u021bie sau pe site.","canonical_url":"https:\/\/prohoster.info\/ro\/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":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/38424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=38424"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38424\/revisions"}],"predecessor-version":[{"id":182486,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38424\/revisions\/182486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/28843"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=38424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=38424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=38424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}