{"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\/es\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali","title":{"rendered":"Retentioneering: c\u00f3mo escribimos herramientas de c\u00f3digo abierto para an\u00e1lisis de productos en Python y Pandas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hola, Habr. Este art\u00edculo est\u00e1 dedicado a los resultados de cuatro a\u00f1os de desarrollo de un conjunto de m\u00e9todos y herramientas para el procesamiento de trayectorias de movimiento de usuarios en aplicaciones o sitios web. El autor del desarrollo es <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/mgodzi\/\">Maksim Godzi<\/a><\/noindex>, quien est\u00e1 al frente del equipo de creadores del producto, y tambi\u00e9n es el autor del art\u00edculo. El producto se llama Retentioneering, y ahora se ha convertido en una biblioteca de c\u00f3digo abierto y se ha alojado en Github, para que cualquier persona interesada pueda utilizarlo. Todo esto puede ser interesante para aquellos relacionados con el an\u00e1lisis de productos y marketing, promoci\u00f3n y desarrollo de productos. Por cierto, en Habr <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/binarydistrict\/blog\/437534\/\">ya se hab\u00eda publicado un art\u00edculo sobre uno de los casos de trabajo con Retentioneering<\/a><\/noindex>. En este nuevo material se habla sobre lo que puede hacer el producto y c\u00f3mo se puede utilizar.<\/p>\n<p>Al leer el art\u00edculo, usted mismo podr\u00e1 escribir su propio Retentioneering, que puede ser cualquier m\u00e9todo estandarizado de procesamiento de trayectorias de usuarios dentro y fuera de la aplicaci\u00f3n, que permite ver en detalle las caracter\u00edsticas del comportamiento y extraer de esto ideas para el crecimiento de m\u00e9tricas comerciales. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>\u00bfQu\u00e9 es Retentioneering y para qu\u00e9 sirve?<\/h3>\n<p>\nInicialmente, nuestro objetivo era traducir el Growth Hacking del mundo de la \"brujer\u00eda digital\" al mundo de los n\u00fameros, la anal\u00edtica y las previsiones. Como consecuencia, simplificamos la anal\u00edtica de productos a pura matem\u00e1tica y programaci\u00f3n para aquellos que prefieren los n\u00fameros a las historias fant\u00e1sticas y las f\u00f3rmulas a palabras como \"rebranding\", \"reposicionamiento\", etc., que suenan bien, pero ayudan poco en la pr\u00e1ctica. <\/p>\n<p>Para resolver los problemas mencionados, necesit\u00e1bamos un marco para la anal\u00edtica mediante grafos y trayectorias, y al mismo tiempo, una biblioteca que simplificara las rutinas t\u00edpicas del analista, como una forma de describir tareas regulares de anal\u00edtica de productos, que fuera comprensible tanto para las personas como para los robots. La biblioteca permite describir el comportamiento de los usuarios y asociarlo con las m\u00e9tricas comerciales del producto en un lenguaje formal y claro, para simplificar y automatizar las tareas rutinarias de desarrolladores y analistas, y facilitar su comunicaci\u00f3n con el negocio.<\/p>\n<p><b>Retentioneering es un m\u00e9todo y herramientas anal\u00edticas de software que se pueden adaptar e integrar en cualquier producto digital (y no solo). <\/b><\/p>\n<p>Comenzamos a trabajar en el producto en 2015. Ahora ya es un conjunto de herramientas listo, aunque todav\u00eda no perfecto, en Python y Pandas para el trabajo con datos, modelos de aprendizaje autom\u00e1tico con una API similar a sklearn, herramientas para interpretar los resultados de los modelos de aprendizaje autom\u00e1tico eli5 y shap. <\/p>\n<p>Todo esto est\u00e1 envuelto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">en una conveniente biblioteca de c\u00f3digo abierto en el repositorio de Github \u2014 retentioneering-tools<\/a><\/noindex>. Usar la biblioteca no es complicado, pr\u00e1cticamente cualquier persona que le guste la anal\u00edtica de productos, pero que no haya escrito c\u00f3digo antes, puede aplicar nuestros m\u00e9todos anal\u00edticos a sus datos de manera independiente y sin gastar mucho tiempo. <\/p>\n<p>Un programador, creador de aplicaciones o miembro del equipo de desarrollo o pruebas, que nunca antes ha trabajado en anal\u00edtica, puede comenzar a experimentar con este c\u00f3digo y ver los patrones de uso de su aplicaci\u00f3n sin ayuda externa. <\/p>\n<h3>La trayectoria del usuario como elemento b\u00e1sico de an\u00e1lisis y los m\u00e9todos para procesarla<\/h3>\n<p>\n<b>La trayectoria del usuario es la secuencia de estados del usuario en ciertos momentos.<\/b> Y los eventos pueden provenir de diferentes fuentes de datos, tanto en l\u00ednea como fuera de l\u00ednea. Los eventos que sucedieron al usuario son parte de su trayectoria. Ejemplos:<br \/>\n\u2022 hizo clic en un bot\u00f3n<br \/>\n\u2022 vio una imagen<br \/>\n\u2022 lleg\u00f3 a la pantalla<br \/>\n\u2022 recibi\u00f3 un correo<br \/>\n\u2022 recomend\u00f3 el producto a un amigo<br \/>\n\u2022 llen\u00f3 un formulario<br \/>\n\u2022 toc\u00f3 la pantalla<br \/>\n\u2022 se desplaz\u00f3<br \/>\n\u2022 se acerc\u00f3 a la caja<br \/>\n\u2022 pidi\u00f3 un burrito<br \/>\n\u2022 comi\u00f3 el burrito<br \/>\n\u2022 se intoxic\u00f3 con el burrito que comi\u00f3<br \/>\n\u2022 entr\u00f3 al caf\u00e9 por la entrada trasera<br \/>\n\u2022 entr\u00f3 por la entrada principal<br \/>\n\u2022 cerr\u00f3 la aplicaci\u00f3n<br \/>\n\u2022 recibi\u00f3 una notificaci\u00f3n push<br \/>\n\u2022 mir\u00f3 la pantalla durante m\u00e1s tiempo del esperado<br \/>\n\u2022 pag\u00f3 el pedido<br \/>\n\u2022 recogi\u00f3 el pedido<br \/>\n\u2022 le negaron un cr\u00e9dito<\/p>\n<p>Si se toman los datos de las trayectorias de un grupo de usuarios y se estudia c\u00f3mo son las transiciones, se puede rastrear c\u00f3mo se comportan en la aplicaci\u00f3n. Esto se puede hacer de manera conveniente a trav\u00e9s de un gr\u00e1fico, donde los estados son nodos y las transiciones entre estados son aristas:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: c\u00f3mo escribimos herramientas de c\u00f3digo abierto para an\u00e1lisis de productos en Python y Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/07d7a7cf4f023f5d42ef9b31ed07a0ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n\u00abTrayectoria\u00bb es un concepto muy \u00fatil: contiene informaci\u00f3n detallada sobre todas las acciones del usuario, con la posibilidad de a\u00f1adir cualquier dato adicional a la descripci\u00f3n de dichas acciones. Esto la convierte en un objeto universal. Si cuentas con herramientas bonitas y pr\u00e1cticas que permitan trabajar con trayectorias, puedes encontrar similitudes y segmentarlas.<\/p>\n<p>La segmentaci\u00f3n de trayectorias puede parecer algo muy complejo al principio. En situaciones normales, as\u00ed es: se necesita utilizar comparaci\u00f3n de matrices de conectividad o alineaci\u00f3n de secuencias. Sin embargo, hemos encontrado un m\u00e9todo m\u00e1s sencillo: estudiar un gran n\u00famero de trayectorias y segmentarlas a trav\u00e9s de la agrupaci\u00f3n.<\/p>\n<p>Como se ha descubierto, es posible transformar una trayectoria en un punto utilizando representaciones continuas, por ejemplo, <noindex><a rel=\"nofollow\" href=\"http:\/\/datameetsmedia.com\/bag-of-words-tf-idf-explained\/\">TF-IDF<\/a><\/noindex>. Tras la transformaci\u00f3n, la trayectoria se convierte en un punto en el espacio, donde los ejes representan la frecuencia normalizada de diferentes eventos y transiciones dentro de la trayectoria. Esta representaci\u00f3n en un espacio de mil dimensiones o m\u00e1s (dimS=suma(tipo de eventos)+suma(tipo de ngramas_2), puede proyectarse en un plano utilizando <noindex><a rel=\"nofollow\" href=\"https:\/\/www.quora.com\/How-does-t-SNE-work-in-simple-words\">TSNE<\/a><\/noindex>. TSNE es una transformaci\u00f3n que reduce la dimensionalidad del espacio a 2 ejes y, en la medida de lo posible, conserva las distancias relativas entre los puntos. Por lo tanto, se hace posible, en un mapa plano, en un mapa proyecci\u00f3n de trayectorias, estudiar c\u00f3mo se relacionaban entre s\u00ed los puntos de diferentes trayectorias. Se analiza cu\u00e1n cercanos o diferentes eran entre s\u00ed, si formaban cl\u00fasteres o si se dispersaban por el mapa, etc.:<\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: c\u00f3mo escribimos herramientas de c\u00f3digo abierto para an\u00e1lisis de productos en Python y Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/3f0386c33885cb842aec8ec01a5f47ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLas herramientas anal\u00edticas de Retentioneering permiten convertir un conjunto de datos complejos y trayectorias en una representaci\u00f3n que se puede comparar entre s\u00ed, y luego investigar e interpretar el resultado de la transformaci\u00f3n.<\/p>\n<p>Al hablar de m\u00e9todos est\u00e1ndar de procesamiento de trayectorias, se refieren a tres herramientas principales que hemos implementado en Retentioneering: grafos, matrices paso a paso y mapas de proyecci\u00f3n de trayectorias. <\/p>\n<p>Trabajar con Google Analytics, Firebase y sistemas similares de an\u00e1lisis es bastante complicado y no siempre efectivo. El problema se encuentra en una serie de limitaciones para el usuario, lo que provoca que el trabajo del analista en estos sistemas se limite a clics del mouse y selecciones de segmentos. Retentioneering permite trabajar con trayectorias de usuarios, y no solo con embudos, como en Google Analytics, donde el nivel de detalle a menudo se reduce a un embudo, aunque est\u00e9 construido para un segmento espec\u00edfico. <\/p>\n<h3>Retentioneering y casos de estudio<\/h3>\n<p>\nComo ejemplo del uso de la herramienta desarrollada, se puede presentar el caso de un gran servicio de nicho en Rusia. Esta empresa tiene una aplicaci\u00f3n m\u00f3vil para Android, que es popular entre los clientes. La facturaci\u00f3n anual de la aplicaci\u00f3n m\u00f3vil era de alrededor de 7 millones de rublos, con fluctuaciones estacionales en el rango de 60 a 130 mil. Esta misma empresa tambi\u00e9n tiene una aplicaci\u00f3n para iOS, y el ticket promedio del usuario de la aplicaci\u00f3n de 'manzana' era superior al ticket promedio del cliente que utiliza la aplicaci\u00f3n de Android: 1080 rublos frente a 1300 rublos.<\/p>\n<p>La empresa decidi\u00f3 aumentar la eficiencia de la aplicaci\u00f3n de Android, para lo cual realiz\u00f3 un an\u00e1lisis exhaustivo. Se formularon varias decenas de hip\u00f3tesis sobre el aumento de la efectividad de la aplicaci\u00f3n. Despu\u00e9s de usar Retentioneering, se descubri\u00f3 que el problema radicaba en los mensajes que se mostraban a los nuevos usuarios. Ellos recib\u00edan informaci\u00f3n sobre la marca, las ventajas de la empresa y los precios. Pero, como se descubri\u00f3, los mensajes deb\u00edan ayudar al usuario a aprender a usar la aplicaci\u00f3n. <\/p>\n<p><img decoding=\"async\" alt=\"Retentioneering: c\u00f3mo escribimos herramientas de c\u00f3digo abierto para an\u00e1lisis de productos en Python y Pandas\" src=\"\/wp-content\/uploads\/2019\/09\/9e6718eb967ae65d047605e4b8a92b3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsto fue lo que se hizo, resultando en una disminuci\u00f3n de las desinstalaciones de la aplicaci\u00f3n y un aumento del 23% en la conversi\u00f3n a pedidos. Al principio, se destin\u00f3 el 20% del tr\u00e1fico entrante para la prueba, pero despu\u00e9s de unos d\u00edas, al analizar los primeros resultados y evaluar la tendencia, se cambiaron las proporciones y, al contrario, se dejaron el 20% para el grupo de control y se coloc\u00f3 el 80% en la prueba. Una semana despu\u00e9s, se decidi\u00f3 agregar secuencialmente la prueba de dos hip\u00f3tesis adicionales. En total, despu\u00e9s de siete semanas, los ingresos de la aplicaci\u00f3n de Android aumentaron en un 50% en comparaci\u00f3n con el nivel anterior.<\/p>\n<h3>\u00bfC\u00f3mo trabajar con Retentioneering?<\/h3>\n<p>\nLos primeros pasos son bastante simples: descargamos la biblioteca con el comando pip install retentioneering. En el repositorio hay ejemplos listos y casos de procesamiento de datos para algunas tareas de an\u00e1lisis de productos. El conjunto se est\u00e1 ampliando constantemente, mientras que es suficiente para una primera introducci\u00f3n. Cualquiera puede tomar m\u00f3dulos listos y aplicarlos de inmediato a sus tareas, lo que permite configurar r\u00e1pidamente el proceso de an\u00e1lisis m\u00e1s detallado y optimizaci\u00f3n de los trayectos de los usuarios de manera \u00e1gil y efectiva. Todo esto permite identificar patrones de uso de la aplicaci\u00f3n a trav\u00e9s de c\u00f3digo comprensible y transmitir esta experiencia a los colegas.<\/p>\n<p>Retentioneering es una herramienta que debe utilizarse durante todo el ciclo de vida de la aplicaci\u00f3n, y aqu\u00ed est\u00e1 el por qu\u00e9:<\/p>\n<ul>\n<li>Retentioneering es efectivo para rastrear y optimizar continuamente los trayectos de los usuarios y mejorar los indicadores comerciales. As\u00ed, en las aplicaciones de ecommerce a menudo se agregan nuevas funciones, cuyo impacto en el producto no siempre se puede predecir correctamente. En algunos casos, surgen problemas de compatibilidad entre las funciones nuevas y las antiguas: por ejemplo, las nuevas \u201ccanibalizan\u201d las existentes. Y en esta situaci\u00f3n es cuando se necesita un an\u00e1lisis constante de los trayectos. <\/li>\n<li>La situaci\u00f3n es similar al trabajar con canales publicitarios: se prueban continuamente nuevas fuentes de tr\u00e1fico y creativos publicitarios, es necesario monitorear la estacionalidad, las tendencias y el impacto de otros eventos, lo que da lugar a la aparici\u00f3n de nuevas clases de problemas. Aqu\u00ed tambi\u00e9n se requiere un seguimiento y una interpretaci\u00f3n constante de las mec\u00e1nicas del usuario. <\/li>\n<li>Hay toda una serie de factores que influyen constantemente en el funcionamiento de la aplicaci\u00f3n. Por ejemplo, nuevas versiones de los desarrolladores: al resolver un problema actual, pueden involuntariamente revertir uno antiguo o crear uno completamente nuevo. Con el tiempo, el n\u00famero de nuevas versiones crece, y es necesario automatizar el proceso de seguimiento de errores, incluida la an\u00e1lisis de los trayectos de los usuarios.<\/li>\n<\/ul>\n<p>\nEn general, Retentioneering es una herramienta eficaz. Pero no hay l\u00edmite para la perfecci\u00f3n: se puede y debe mejorar, desarrollar y construir sobre su base nuevos productos interesantes. Cuanto m\u00e1s activa sea la comunidad del proyecto, m\u00e1s forks habr\u00e1 y surgir\u00e1n nuevas formas interesantes de uso.<\/p>\n<p>Informaci\u00f3n adicional sobre las herramientas de Retentioneering:<\/p>\n<ul>\n<li>Nuestro sitio: <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\">Calendario de meetups<\/a><\/noindex> y registro para participar<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/t-do.ru\/retentioneering_meetups\">Chat de productos y analistas en Telegram<\/a><\/noindex><\/li>\n<li>Gratis <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/retentioneering\/retentioneering-tools\">repositorio de Retentioneering en GitHub<\/a><\/noindex> <\/li>\n<\/ul>\n<p>Fuente: <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.3 - 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\/es\/blog\/news\/retentioneering-kak-my-open-source-instrumenty-dlya-produktovoj-analitiki-na-python-i-pandas-napisali\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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: c\u00f3mo escribimos herramientas de an\u00e1lisis de producto en Python y Pandas como open-source | ProHoster","description":"Hola, Habr. Este art\u00edculo est\u00e1 dedicado a los resultados de cuatro a\u00f1os de desarrollo de un conjunto de m\u00e9todos y herramientas para el procesamiento de trayectorias de movimiento de los usuarios en una aplicaci\u00f3n o sitio web.","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/38424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=38424"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38424\/revisions"}],"predecessor-version":[{"id":182486,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38424\/revisions\/182486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/28843"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=38424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=38424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=38424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}