Comprobar si una celda está vacía en Pandas

Olorunfemi Akinlua 21 junio 2023
  1. Use la función isnull() para verificar si la celda está vacía
  2. Use la función any () para verificar si la celda está vacía
  3. Use la función isnan para verificar si la celda está vacía
Comprobar si una celda está vacía en Pandas

Los datos vacíos son malos y no buenos cuando necesitamos comparar, combinar o extraer información útil, por lo que es importante saber si existen.

Cuando cargamos nuestros datos CSV en Pandas como un marco de datos, cada dato está presente dentro de una celda y cada celda vacía representa datos vacíos. En este artículo, le mostraremos tres enfoques que podemos usar para verificar si una celda está vacía en Pandas.

Use la función isnull() para verificar si la celda está vacía

Para mostrar las funciones en acción, crearemos un marco de datos de Pandas dentro de algunas celdas vacías.

Código:

import pandas as pd
import numpy as np

df = pd.DataFrame([[1, 2, 3], [3, 4], [3, 4, 5, 6]], columns=list("ABCD"))
print(df)

Producción :

A  B    C    D
0  1  2  3.0  NaN
1  3  4  NaN  NaN
2  3  4  5.0  6.0

Ahora que tenemos un marco de datos con 3 celdas vacías, podemos jugar con la función isnull(), que está diseñada para encontrar valores faltantes para objetos tipo matriz: NaN, Ninguno o NaT - y devuelve un valor booleano que indica si está presente o no un valor faltante. Puede aplicar la función isnull() en todo el marco de datos, una columna específica o una celda específica.

Para verificar el marco de datos o una columna específica, pasaremos el marco de datos como argumento.

print(pd.isnull(df))
print(pd.isnull(df["C"]))

Producción :

A      B      C      D
0  False  False  False   True
1  False  False   True   True
2  False  False  False  False

0    False
1     True
2    False
Name: C, dtype: bool

El marco de datos se muestra con valores booleanos que indican si hay un valor vacío o no, donde False significa un valor no vacío y True significa un valor vacío.

Pero más preocupados por verificar si una celda está vacía, podemos usar los métodos loc e iloc junto con el método isnull().

Si queremos comprobar la celda (índice 1 en la columna C, que contiene NaN), el siguiente código será el adecuado para seleccionar y realizar la comprobación.

Código:

print(pd.isnull(df.loc[1, "C"]))
print(pd.isnull(df["C"].iloc[1]))

Producción :

True
True

Use la función any () para verificar si la celda está vacía

Otra función que puede permitirnos comprobar si alguna celda del marco de datos está vacía es la función any(). Siempre que una celda esté vacía, la función devuelve True y, en caso contrario, False.

Necesitamos usar la función isnull() y la propiedad values para que funcione.

Usando el mismo marco de datos de la sección anterior, el siguiente código usa la función isnull() en el marco de datos y ahora contiene solo valores booleanos para indicar vacío, y se puede acceder a los valores booleanos a través de la propiedad valores que se puede encadenar a la función cualquiera().

Código:

print(df.isnull().values.any())

Producción :

True

Use la función isnan para verificar si la celda está vacía

Podemos almacenar el índice que tiene su celda vacía en una columna en una lista usando las funciones index y apply(), así como la prueba numpy.isnan.

Seleccionaremos la columna y luego usaremos la función index para lograr esto. Dentro del método index, volvemos a seleccionar la misma columna para usar la función apply() con el test numpy.isnan.

Estos se pasarán a la función list().

Código:

list(df["D"].index[df["D"].apply(np.isnan)])

Producción :

[0, 1]

Con esto, tenemos el índice (0 y 1) de las celdas vacías dentro de la columna D.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn