En este artículo, aprenderemos cómo eliminar un nivel de un índice de columna de varios niveles . Pero antes de eso, necesitamos saber qué es un índice multinivel. Un dataframe de índice multinivel es un tipo de dataframe que contiene indexación jerárquica o de múltiples niveles .
En este artículo, crearemos un marco de datos de nuestra propia elección con indexación de múltiples columnas y luego dejaremos un nivel de nuestra indexación jerárquica.
Implementación paso a paso
Entendamos esto usando la implementación paso a paso con la ayuda de un ejemplo.
Paso 1: Importe todas las bibliotecas requeridas.
Python3
# importing all important libraries import pandas as pd
Paso 2: cree un índice de columna de varios niveles Pandas Dataframe y muéstrelo.
Estamos creando una columna de múltiples índices usando MultiIndex.from_tuples() que nos ayuda a crear múltiples índices uno debajo de otro, y se crea por columnas. Después de eso, usando pd.Dataframe() estamos creando datos y convirtiéndolos al formato tabular con los nombres de las columnas como índices de varios niveles. Además, estamos cambiando el nombre del índice de la tabla usando df.index.
Python3
# Creating a multilevel index index = pd.MultiIndex.from_tuples([("Group 1", "Group 1"), ("Group 1", "Group 2"), ("Group 3","Group 3")]) # Creating a pandas dataframe with # multilevel-column indexing df = pd.DataFrame([["Ross","Joey","Chandler"], ["Rachel","","Monica"]], columns=index) # Labelling the dataframe index. index = df. index index. name = "F.R.I.E.N.D.S" # Showing the above multi-index column # dataframe print(df)
Producción:
Paso 3: suelte los niveles del marco de datos
Ahora se crea un marco de datos de índice de columna de varios niveles usando python. Ahora vamos a implementar el concepto anterior ahora. Tenemos que bajar un nivel. Podemos hacerlo usando df.columns.droplevel(level=0) . Esto nos ayuda a bajar un nivel de índice desde la parte superior que es de índice 0.
Python3
# Dropping a level down df.columns = df.columns.droplevel(0)
Paso 4: Muestra el resultado requerido
Python3
print(df)
Producción:
Por lo tanto, hemos podido eliminar un nivel de columna de índice con éxito.
Veamos algunos ejemplos más basados en el enfoque anterior.
Ejemplo 1:
En el siguiente ejemplo, eliminaremos un nivel de un índice específico en el índice de columna de varios niveles. Esto se puede hacer usando la misma sintaxis que hemos usado anteriormente [ df.columns.droplevel(level=0) ] donde si especificamos el número de nivel, el siguiente índice se elimina de acuerdo con la indexación basada en cero. Así que pasemos a la implementación del concepto.
Python3
# importing all important libraries import pandas as pd # Creating a multilevel index index = pd.MultiIndex.from_tuples([("Company A", "Company B","Company C"), ("Company A", "Company A","Company B"), ("Company A","Company B","Company C")]) # Creating a pandas dataframe with # multilevel-column indexing df = pd.DataFrame([["Atreyi","Digangana","Sohom"], ["Sujit","Bjon","Rajshekhar"], ["Debosmita","Shatabdi",""]], columns=index) # Labelling the dataframe index. index = df. index index. name = "ECE Placement" # Showing the above multi-index column # dataframe print(df)
Producción:
Ahora, si queremos bajar el nivel con el índice 2, ¡veamos qué sucede!
Python3
# Dropping a level number 2 df.columns = df.columns.droplevel(2) print(df)
Producción:
Por lo tanto, podemos observar que en el índice de columna de varios niveles, hemos eliminado con éxito el nivel con el número de índice 2.
Ejemplo 2:
En este ejemplo, implementaremos más conceptos del índice multinivel. Eliminaremos varios niveles al mismo tiempo.
Python3
# importing all important libraries import pandas as pd # Creating a multilevel index index = pd.MultiIndex.from_tuples([("Company A", "Company B", "Company C"), ("Company A", "Company A", "Company B"), ("Company A", "Company B", "Company C")]) # Creating a pandas dataframe with # multilevel-column indexing df = pd.DataFrame([["Atreyi", "Digangana", "Sohom"], ["Sujit", "Bjon", "Rajshekhar"], ["Debosmita", "Shatabdi", ""]], columns=index) # Labelling the dataframe index. index = df. index index. name = "ECE Placement" # Showing the above multi-index column # dataframe print(df)
Producción:
Como podemos ver, cada lista de arreglos contiene los índices por columnas. Entonces, tres arreglos significan tres columnas y el número de valores en el arreglo se refiere al número de filas. Eliminemos múltiples índices del marco de datos ahora. Podemos hacerlo usando df.columns.droplevel(level=0) llamándolo varias veces. ¡Pero aquí hay una trampa!
Python3
# Dropping a level down df.columns = df.columns.droplevel(0) # Dropping another level down df.columns = df.columns.droplevel(0) # Showing the dataframe print(df)
Como podemos ver, hay dos instrucciones droplevel con el nivel 0. Esto se debe a que, después de eliminar un solo nivel, los restantes se reorganizan. Entonces, el nivel que estaba en el índice 1 ahora llegará al índice 0, por lo tanto, se escriben múltiples niveles de caída en ese caso.
Producción:
Por lo tanto, el nivel 0 y el nivel 1 se eliminan y nos queda solo el nivel 2, que ahora se muestra como nivel 0.
Ejemplo 3:
En el último ejemplo, eliminemos varios niveles de varias posiciones en el marco de datos.
Python3
# importing all important libraries import pandas as pd # Creating a pandas dataframe df = pd.DataFrame([["Coding", "System Design"], ["DBMS", "Aptitude"], ["Logical Reasoning", "Development"]]) # Creating multilevel index from tuples df.columns = pd.MultiIndex.from_tuples([('Group 1', 'Group 2', 'Group 3', 'Group 4'), ('Group 3', 'Group 4', 'Group 5', 'Group 6')], names=['level 1', 'level 2', 'level 3', 'level 4']) # Showing the dataframe print(df)
Producción:
Ahora eliminemos los niveles 1 y 3 respectivamente:
Python3
# Dropping a level down(Level 1) df.columns = df.columns.droplevel(0) # Dropping a level down after # re-arrangement(Level 2) df.columns = df.columns.droplevel(1) # Showing the dataframe print(df)
Como podemos ver, hemos bajado un nivel desde el índice 0 en el primer caso. Después de la reorganización, el nivel 2 ahora llegará a los índices 0 del marco de datos del índice de niveles múltiples. Ahora, para eliminar el nivel 3 ahora, tenemos que especificar el nivel como 1 de acuerdo con la indexación basada en 0 después de la reorganización. Ahora los niveles 2 y 4 se mostrarán en la salida resultante.
Producción: