Python

Eliminar filas o columnas con valores nulos en Python

La existencia de valores nulos en cualquier conjunto de datos supone un problema a la hora de realizar cualquier análisis. Saber cómo eliminar estos valores de manera fácil es clave de cara a automatizar los procesos de análisis. En esta entrada se va a explicar la forma de eliminar las filas o columnas que contenga valores nulos en Python. En primer lugar, se explicará la forma de hacerlo en numpy y posteriormente en dataframes de pandas.

Conjunto de datos de ejemplo

A la hora de cargar cualquier conjunto de datos es habitual encontrar que ciertas columnas o filas contengan valores nulos. Para ver como se pueden procesar estos lo primero que se ha hacer crear una matriz:

data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9],
                 [np.nan, 1, 2],
                 [3, 4, 5]])

Como se puede ver se ha creado una matriz con tres filas y cinco columnas. La cuarta fila de la primera columna contiene un valor nulo.

Eliminación en numpy

Para identificar los elementos nulos se puede utilizar isnan. Con lo que obstine una matriz en la que se indica las posiciones en la que se encuentran los elementos.

np.isnan(data)
array([[False, False, False],
       [False, False, False],
       [False, False, False],
       [ True, False, False],
       [False, False, False]])

Para obtener las filas en las que existe por lo menos un elemento nulo se puede utilizar any(axis=1) sobre la matriz anterior.

np.isnan(data).any(axis=1)
array([False, False, False, True, False])

Ahora, simplemente se ha de seleccionar las filas que no contengan ningún elemento nulo.

data[~np.isnan(data).any(axis=1)]
array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.], [3., 4., 5.]])

La eliminación también se puede realizar por columnas. Para ello se ha de indicar a la función any que trabaje por columnas

data[~np.isnan(data).any(axis=0)]
array([[2., 3.], [5., 6.], [8., 9.], [1., 2.], [4., 5.]])

Eliminación en pandas

En pandas la eliminación de las filas o columnas con nulos es más fácil. Para ello existe el método dropna en los dataframe. Para continuar lo primero que hay que hacer es convertir la matriz en un dataframe.

df = pd.DataFrame(data, columns=['feature_1', 'feature_2', 'feature_2'])

Ahora, para eliminar las filas con nulos simplemente se utiliza el método.

df.dropna()
 feature_1 feature_2 feature_2
0 1.0  2.0  3.0
1 4.0  5.0  6.0
2 7.0  8.0  9.0
4 3.0  4.0  5.0

Alternativamente, para eliminar las columnas se ha de indicar a dropna que use este eje.

df.dropna(1)
 feature_2 feature_2
0 2.0  3.0
1 5.0  6.0
2 8.0  9.0
3 1.0  2.0
4 4.0  5.0

Conclusiones

En esta entrada explicado como eliminar las filas o columnas con valores nulos en Python. En primer lugar, se ha explicado cómo hacer esto con numpy. Posteriormente se ha explicado la forma para cuando se trabaja con objetos dataframe en pandas.

Imágenes: Pixabay (markusspiske)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: NumPyPandas

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

2 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

4 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.