Soltar columnas vacías en Pandas
El marco de datos Pandas es una herramienta de manipulación de datos muy poderosa. Es una estructura de datos tabular que consta de filas y columnas. El tamaño de esta matriz 2-D puede variar según la complejidad del conjunto de datos. Podemos utilizar diferentes tipos de fuentes para crear un marco de datos que va desde bases de datos hasta archivos.
Las columnas en un marco de datos de pandas representan una serie de información y puede ser un número entero, flotante o una cadena. Podemos realizar numerosas operaciones en estas columnas, incluida la eliminación, indexación, filtrado, etc. En este artículo, realizaremos una operación básica de eliminación/eliminación de columnas vacías de un marco de datos de pandas.
En primer lugar, comprendamos qué columnas vacías hay en un marco de datos.
Crear el marco de datos con columnas vacías
Creamos un marco de datos para analizar los datos aprovechando las técnicas informáticas. Cada columna consta de un dato y tiene algún significado. En el caso de conjuntos de datos complejos, el marco de datos generado puede contener algunas columnas vacías, lo que degrada la relevancia del marco de datos. Para producir un marco de datos optimizado, tendemos a eliminar este tipo de datos innecesarios.
Si una columna consta de valores “NaN” (no un número), se considera “vacía”. Una columna que consta de valores “espacios vacíos” y “cero” no es “vacía” por naturaleza porque un “espacio vacío” y un “valor cero” significan algo sobre el conjunto de datos.
Cuando creamos un marco de datos y no pasamos ningún dato a la columna, se crea una columna vacía. Podemos eliminar columnas regulares y vacías con la ayuda del método “dataframe.drop()”, pero para eliminar columnas específicas usamos “dataframe.dropna()”. método. Creemos un marco de datos con valores "NaN" y luego comencemos con la operación de colocación.
Ejemplo
Importamos las bibliotecas "pandas" y "numpy" y luego pasamos un conjunto de datos de diccionario que consta de información relacionada con diferentes albergues.
Creamos el marco de datos con la ayuda de la función "DataFrame()" y pasamos una lista de valores para etiquetar las filas.
En el conjunto de datos asignamos valores de NaN a la columna "Ubicación del albergue" con la ayuda de la biblioteca numpy y finalmente imprimimos el marco de datos.
import pandas as pd
import numpy as np
dataset = {"Hostel ID":["DSC224", "DSC124", "DSC568", "DSC345"], "Hostel Rating":[8, 6, 10, 5], "Hostel price":[35000, 32000, 50000, 24000], "Hostel location": [np.nan, np.nan, np.nan, np.nan]}
dataframe = pd.DataFrame(dataset, index= ["Hostel 1", "Hostel 2", "Hostel 3", "Hostel 4"])
print(dataframe)
Producción
Hostel ID Hostel Rating Hostel price Hostel location
Hostel 1 DSC224 8 35000 NaN
Hostel 2 DSC124 6 32000 NaN
Hostel 3 DSC568 10 50000 NaN
Hostel 4 DSC345 5 24000 NaN
Uso del método dropna() para eliminar columnas vacías
Apliquemos el método dropna() al marco de datos anterior.
Ejemplo
Después de crear el marco de datos, utilizamos la función "dropna()" para eliminar todas las columnas con valores NaN.
Como estamos operando en las columnas, especificamos el valor del eje como "1" y luego se programó la lógica de caída asignando el valor "cómo" como "todos". Significa que una columna se eliminará solo si todos sus valores son "NaN".
Por fin, creamos e imprimimos un nuevo marco de datos con valores que no son "NaN".
import pandas as pd
import numpy as np
dataset = {"Hostel ID":["DSC224", "DSC124", "DSC568", "DSC345"], "Hostel Rating":[8, 6, 10, 5], "Hostel price":[35000, 32000, 50000, 24000], "Hostel location": [np.nan, np.nan, np.nan, np.nan]}
dataframe = pd.DataFrame(dataset, index= ["Hostel 1", "Hostel 2", "Hostel 3", "Hostel 4"])
print(dataframe)
Emp_drop = dataframe.dropna(how= "all", axis=1)
print("After dropping the empty columns using dropna() we get: -")
print(Emp_drop)
Producción
Hostel ID Hostel Rating Hostel price Hostel location
Hostel 1 DSC224 8 35000 NaN
Hostel 2 DSC124 6 32000 NaN
Hostel 3 DSC568 10 50000 NaN
Hostel 4 DSC345 5 24000 NaN
After dropping the empty columns using dropna() we get: -
Hostel ID Hostel Rating Hostel price
Hostel 1 DSC224 8 35000
Hostel 2 DSC124 6 32000
Hostel 3 DSC568 10 50000
Hostel 4 DSC345 5 24000
Nota - Si queremos realizar cambios en el marco de datos actual en lugar de crear uno nuevo, utilizamos la cláusula "inplace".
dataframe.dropna(how= "all", axis=1, inplace=True)
print(dataframe)
Uso del método notnull() para eliminar columnas vacías
Después de crear el marco de datos, utilizamos el método notnull() junto con la función loc() para filtrar y seleccionar aquellas columnas con valores "NaN". Especificamos el eje de evaluación e imprimimos el marco de datos con valores que no son "NaN".
Ejemplo
import pandas as pd
import numpy as np
dataset = {"Hostel ID":["DSC224", "DSC124", "DSC568", "DSC345"], "Hostel Rating":[8, 6, 10, 5], "Hostel price":[35000, 32000, 50000, 24000], "Hostel location": [np.nan, np.nan, np.nan, np.nan]}
dataframe = pd.DataFrame(dataset, index= ["Hostel 1", "Hostel 2", "Hostel 3", "Hostel 4"])
print(dataframe)
dataframe = dataframe.loc[:, dataframe.notnull().any(axis=0)]
print("Using notnull() method to remove empty columns: -")
print(dataframe)
Producción
Hostel ID Hostel Rating Hostel price Hostel location
Hostel 1 DSC224 8 35000 NaN
Hostel 2 DSC124 6 32000 NaN
Hostel 3 DSC568 10 50000 NaN
Hostel 4 DSC345 5 24000 NaN
Using notnull() method to remove empty columns: -
Hostel ID Hostel Rating Hostel price
Hostel 1 DSC224 8 35000
Hostel 2 DSC124 6 32000
Hostel 3 DSC568 10 50000
Hostel 4 DSC345 5 24000
Conclusión
En este artículo, analizamos los diferentes métodos para eliminar columnas vacías, es decir, columnas que constan de valores "NaN". Discutimos sobre el método “dropna()” y el método “notnull()” y cómo se implementan para eliminar columnas vacías del marco de datos. También entendimos la importancia de deshacernos de estos datos innecesarios y cómo aumentan la relevancia del marco de datos.