Búsqueda de sitios web

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.