Pandas aplanado multiíndex

Pandas aplanado multiíndex
Multidedex es un conjunto de métodos de indexación sofisticados para marcos de datos. Permite que los índices tengan numerosos niveles. También se puede denominar un índice multinivel o un índice jerárquico. El objeto multiíntesis proporciona una representación jerárquica del objeto de índice estándar, que a menudo contiene las etiquetas de los ejes en los objetos de los pandas. Multidedex se puede comparar con una matriz de tuplas, cada una de las cuales es distinta. Casi nunca necesitas una columna con un índice jerárquico en pandas. La mayoría de las veces, solo desea usar un nombre de columna para identificar una columna. En este tutorial, aplanaremos el marco de datos multiíntesis utilizando algunas funciones de pandas.

Cómo se puede aplanar el multiíndex en pandas

Las funciones como RESET_INDEX y TO_RECORDS () se pueden usar para aplanar el Multiindex. Le enseñaremos cómo aplanar el multiíndex en los siguientes ejemplos.

Ejemplo 1: aplanando el multiíndex de todos los niveles usando la función reset_index ()

Usando la función reset_index (), aplanaremos todas las capas del marco de datos en este ejemplo. La lista de tuplas se convierte en multiíndex utilizando el método from_tuples (). Podemos crear un multiíndex de varias maneras, y este es el más común uno de ellos.

Primero, creamos nuestro "mi" multiíndex al pasar las múltiples tuplas: ('inglés', '1201', 800), ('Matemáticas', '1202', 900), ('Bio', '1203', 1050) , ('Física', '1204', 1050) y ('Química', '1205', 1100) dentro del PD.Multiíndex.desde la función de_tuples (). Los nombres de la columna de las tuplas se especifican como 'sujeto', 'asign_id' y 'tarifa'. Después de crear el "MI" multiíndex, también creamos un marco de datos PANDAS usando el PD.Función DataFrame (). Pasamos un diccionario con los nombres de los estudiantes como claves y las marcas de los estudiantes como valores dentro de nuestro marco de datos "DF".

Tenemos 3 columnas: "Mike", "Jack" y "Eva", que tienen los valores de datos (49, 43, 39, 41, 37), (36, 35, 41, 36, 42) y (46, 44, 39, 46, 48), respectivamente. Puede notar que al especificar el "MI" multiíndex como el parámetro "índice" dentro del PD.Función DataFrame (), las columnas de tuplas actúan como índices de nivel múltiple. Ahora, usamos la función reset_index () para cambiar los índices múltiples en columnas DataFrame. El índice de nivel múltiple se puede agregar como una nueva columna DataFrame utilizando el reset_index (). El argumento de caída se puede usar en la función reset_index () si no queremos cambiar el índice como una columna. En lugar de hacer una nueva copia, podemos restablecer el índice de DataFrame actual utilizando el argumento en su lugar.

Se puede notar que los tres niveles de índices se cambian a la columna de nuestro marco de datos "DF". El índice también se restablece al índice entero predeterminado de pandas.

Ejemplo 2: aplanando los niveles específicos de múltiples éndex utilizando la función reset_index ()

El enfoque para aplanar todos los niveles de multiíndex en columnas del marco de datos se demostró en el ejemplo anterior. Ahora, aprenderemos cómo aplanar los niveles específicos del índice en las columnas de DataFrame utilizando la función reset_index (). Se puede crear un marco de datos de varias maneras con Pandas Multiindex. Ya hemos visto el que hace uso del método de TUPLS. Creemos un multiíndex usando la función from_array ().

Pasamos tres matrices y especificamos sus nombres como "L1" con los valores de índice numérico (11, 22, 33, 44, 55). Especificamos "L2" con valores de cadena ('I', 'II', 'III', 'IV', 'V') y "L3" con valores de índice entero (1, 2, 3, 4, 5). Ahora, usamos este "MI" multiíndex dentro del PD.Función DataFrame () para crear un DataFrame de MultiDindex.

Para crear nuestro marco de datos, primero creamos un "datos" del diccionario de Python con par de valores clave. Luego, el diccionario "datos" se pasa dentro del PD.Función DataFrame () como entrada. El parámetro "columnas" se especifica como ['departamento', 'gasto'] para cambiar las claves y los valores del diccionario en etiquetas y datos de columna del marco de datos PANDAS. El índice de parámetros se especifica como "MI" para establecer los niveles de múltiples éndex en el marco de datos 'DF'. Ahora, usamos la función reset_index () para aplanar uno o más niveles del multiíndex en columnas.

Sintaxis para aplanar un nivel específico usando RESET_INDEX ()::

marco de datos.reset_index (inplace = true, nivel = ['nombre de nivel'])

El nombre del nivel del índice que queremos aplanar se especifica en el parámetro "Nivel".

Supongamos que tenemos que aplanar el índice "L1" en la columna del DataFrame.

Se puede notar que al especificar el parámetro "nivel" como "L1" dentro de la función Reset_index (), el índice "L1" se aplana con éxito a una columna. Al usar la lista de niveles de índice en el "nivel" de parámetro, podemos aplanar los índices múltiples a las columnas de DataFrame. Usemos una lista de índices "L2" y "L3" en el parámetro "Nivel" dentro de la función Reset_index ().

Como se puede ver, al especificar el "nivel" del parámetro como la lista de niveles de índice, yo.mi. ['L2', 'L3'], el nivel de índices "L2" y "L3" ahora también se convierten en columnas.

Ejemplo 3: aplanando los niveles de múltiples éndex usando la función to_records ()

En este ejemplo, aplanaremos los niveles de índice de DataFrame utilizando la función To_records (). Para convertir las tuplas en multiíndex, una vez más usaremos la función form_tuples (). Primero importamos los módulos pandas, luego creamos el multiíndex y dataFrame.

El "MI" multiíndex se crea utilizando las múltiples tuplas, I.mi. ('1001', 'C11', 80), ('1002', 'C12', 75), ('1003', 'C13', 90), ('1004', 'C14', 95) y (( '1005', 'C15', 70). Los nombres para los niveles de índices en el multiíndex se especifican como "id", "código" y "dificultad". Ahora, creemos nuestro marco de datos donde podamos usar este multiíndex.

Nuestro marco de datos se crea utilizando el PD.Función DataFrame (). Nuestro marcado de datos consta de tres columnas. La columna "Asunto" almacena los nombres de los sujetos ('bio', 'química', 'c ++', 'estadísticas', 'python'). La columna de "campo" se ajusta a los valores de cadena que representan el campo de cada materia ('ciencia', 'ciencia', 'programación', 'matemáticas', 'programación'). Mientras él "pase_marks" columna almacena las marcas de pase menos de cada sujeto (45, 45, 50, 40, 50). Hay un índice de tres niveles en nuestro marco de datos como puede ver en el lado izquierdo de nuestro marco de datos "DF".

A medida que nuestro marco de datos con multiindex se crea ahora, usamos la función to_record () para aplanar los índices múltiples en columnas de DataFrame. Un DataFrame se puede transformar en una matriz Numpy utilizando la función To_records (). Si se solicita, el índice se coloca como el primer campo de la matriz de registros. Si se establece, incluya el índice en la matriz de registros resultante usando la etiqueta de índice o el índice almacenado en la etiqueta de campo. Sin embargo, en este ejemplo, simplemente usaremos la función To_record () para cambiar los índices multinivel de DataFrame de datos multiíntesis en columnas simples de DataFrame.

Como se puede ver en la salida, todos los niveles de índices se convierten con éxito a la columna DataFrame. A diferencia de la función reset_index (), no podemos aplanar un índice específico en la columna. Cuando se aplica a DataFrame, aplana todos los índices múltiples a las columnas de DataFrame.

Conclusión

En este tutorial, hemos visto que el multiíndex es un conjunto de métodos de indexación sofisticados para marcos de datos. Permite que los índices tengan numerosos niveles. Aprendimos a crear un multiíndex con tuplas y matrices usando las funciones from_tuples () y from_array (), respectivamente. Implementamos los ejemplos para enseñarle cómo aplanar el multiíndex de todos los niveles y niveles específicos utilizando la función reset_index () y to_records ().