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!


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber