MultiIndex en Pandas para datos jerárquicos o de varios niveles

MultiIndex en Pandas para datos jerárquicos o de varios niveles

MultiIndex en Pandas es un objeto jerárquico o de varios niveles que le permite seleccionar más de una fila y columna en su índice. También le permite crear análisis y manipulación de datos sofisticados, especialmente para trabajar con datos de mayor dimensión. En este tutorial, exploraré la función MultiIndex de Pandas. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

La idea aquí es que tenemos un índice que también contiene una jerarquía. Si ha usado Pandas antes, sabe que los marcos de datos de Pandas contienen un índice , por lo que vamos a agregarle capas adicionales. Eso facilitará tanto la indexación como la remodelación de los datos, dependiendo de si realmente tiene una jerarquía para sus datos.

Por ejemplo, vamos a utilizar el famoso conjunto de datos Gapminder, y este es de hecho un MultiIndex aquí. Tenemos una jerarquía, por lo que un continente puede profundizar en países y cada país puede profundizar en varios años. Entonces, podemos manipular este índice y las cosas serán mucho más fáciles de codificar cuando usemos este índice múltiple. Vamos a ver cómo dividir y remodelar el conjunto de datos de Gapminder.

Tabla de contenido

Cómo usar el índice múltiple en pandas

Vamos a utilizar el conjunto de datos de Gapminder. Si no tiene esto instalado, desea hacer una instalación PIP de Gapminder. Voy a traer Pandas también. Estoy usando la distribución Anaconda de Python. En ese caso, ese Pandas ya estará instalado. Hacemos una importación Gapminder, y luego vamos a echar un vistazo a estos datos.

MultiIndex en Pandas para datos jerárquicos o de varios niveles

Como puede ver aquí, nuevamente tenemos un índice o jerarquía. Debería decir que tenemos un continente, un país y luego un año. Actualmente, el índice es simplemente numérico como este, y vamos a establecer nuestro propio índice ahora mismo. Y la forma en que lo haremos es con Gapminder. Vamos a establecer el índice. Vamos a configurarlo en continente, país y luego año, en lugar igual a ( = ) verdadero .

MultiIndex en Pandas para datos jerárquicos o de varios niveles

Esto es solo guardar los resultados, por lo que no tenemos que llamar a la variable dos veces, solo un poco más eficiente. Y ahora, verás que tenemos el índice aquí, (contenido, país, año) y este es nuestro índice múltiple.

Un par de cosas que podríamos hacer aquí. Digamos, por ejemplo, que quería todo en el continente europeo. Quiero filtrar o dividir este marco de datos. Puedo usar gapminder.loc y luego escribir Europa. Puede que estés familiarizado con loc. Por otras circunstancias en Pandas, funciona mucho más fácil cuando lo estamos haciendo por el índice.

MultiIndex en Pandas para datos jerárquicos o de varios niveles

Ahora bien, esto existe en una jerarquía. Digamos que solo queríamos los datos del Reino Unido. Parece que podríamos simplemente dividir esto, pero esto va a ser un problema porque cuando indexamos esto, nos limitamos a usar la jerarquía. Necesitamos comenzar con el primer nivel y luego profundizar en el segundo y el tercero, etcétera.

Si quisiera incluir múltiples niveles, lo que puedo hacer es pasarlo aquí. Voy a hacer Europa, y luego el Reino Unido. Incluso podría ir un paso más allá y poner 1997. Y ahora, podemos ver aquí el resultado de esa fila en ese caso.

MultiIndex en Pandas para datos jerárquicos o de varios niveles

Otra cosa buena con MultiIndex en Pandas es que es mucho más fácil remodelar los datos. Puedo hacer gapminder_pivot y luego gapminder.unstack . Si necesito remodelar este conjunto de datos, por alguna razón, voy a imprimir esto y verán que ahora tenemos el continente, el país y luego el año junto con las columnas.

MultiIndex en Pandas para datos jerárquicos o de varios niveles

Ahora, digamos que quería hacer eso en la dirección opuesta. Todo lo que tendría que hacer es anular el pivote y vamos a hacer gapminder_pivot . Si eso fue desapilar, entonces esto es apilar gapminder_unpivot.

MultiIndex en Pandas para datos jerárquicos o de varios niveles

Ahora, ¿qué pasa si quiero deshacerme de este índice y restablecerlo y cambiarlo a otra cosa? Todo lo que necesito hacer en ese caso es gapminder_unpivot. Vamos a reset_index . Vamos a hacer eso en su lugar nuevamente. No tenemos que ahorrar sobre sí mismo. Es solo un poco más eficiente. Luego, gapminder_unpivot.

Imprima eso y volvemos a nuestros datos originales y tenemos el índice. El comienzo numérico es cero porque Python es una indexación basada en cero.

MultiIndex en Pandas para datos jerárquicos o de varios niveles


Python en LuckyTemplates: cómo instalar y configurar
secuencias de comandos de Python en informes de datos de LuckyTemplates
LuckyTemplates con secuencias de comandos de Python para crear tablas de fechas

Conclusión

Pandas recibió inicialmente el nombre de los datos del panel. Realmente está destinado a trabajar con datos de panel, que es un tipo específico de datos de series temporales con múltiples categorías. En ese caso, tener una jerarquía realmente tiene sentido, ¿verdad?

Esto funciona muy bien si está trabajando con filas únicas, tratando de encontrar varias columnas.

En cuanto al rendimiento, podría ser que el índice no sea necesario si se está fusionando, pero no nos estábamos fusionando aquí. Solo estábamos operando, accediendo, indexando, remodelando, etc. Sin embargo, la eficiencia de codificación es definitivamente un gran beneficio.

Eso es todo para MultiIndex en Pandas. Espero que esto sea algo que puedas usar. Aprendiste algo un poco nuevo sobre Pandas hoy.

¡Mis mejores deseos!


Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.