La función DataFrame.dropna() de la Bi­blio­te­ca Python Pandas se utiliza para eliminar todas las filas o columnas de un DataFrame que contengan valores que faltan (NaN). Es, por tanto, una de las pri­n­ci­pa­les he­rra­mie­n­tas para la pre­pa­ra­ción y limpieza de datos.

Hosting
Hosting de primera al mejor precio
  • 3x más rápido, ahora un 60 % de ahorro
  • Alta di­s­po­ni­bi­li­dad >99.99 %
  • Solo en IONOS: hasta 500 GB incluidos

Sintaxis de dropna() en Pandas

La función dropna() de Pandas acepta hasta cinco pa­rá­me­tros y su sintaxis básica es bastante simple:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
python

Pa­rá­me­tros re­le­va­n­tes

El co­m­po­r­ta­mie­n­to de la función DataFrame.dropna() puede verse in­flue­n­cia­do por los pa­rá­me­tros que se le pasan. Los pa­rá­me­tros más im­po­r­ta­n­tes se resumen en la siguiente tabla:

Parámetro De­s­cri­p­ción Valor por defecto
axis Determina si se eliminas filas (0 o index) columnas (1 o columns) 0
how Indica si deben incluirse todos los valores (all) o solamente algunos valores NaN (any) any
tresh Indica el número mínimo de valores no NaN que una fila o columna debe tener para que no se elimine. No se puede combinar con el parámetro how opcional
subset Determina qué filas o columnas deben ser co­n­si­de­ra­das opcional
inplace Decide si la operación se realiza en el DataFrame original False
ignore_index Si es verdadero o True, los ejes restantes se eti­que­ta­rán de 0 a n-1 False

Cómo utilizar DataFrame.dropna()

El método de Pandas es necesario para limpiar los datos antes del análisis, ya que elimina filas o columnas con valores faltantes. Esto nos ayuda a evitar sesgos a la hora de realizar eva­lua­cio­nes es­ta­dí­s­ti­cas. Además, facilita la creación de gráficos e informes, dado que la presencia de valores faltantes puede provocar re­pre­se­n­ta­cio­nes in­co­rre­c­tas en algunos casos.

Eliminar filas con valores faltantes

En el siguiente código ana­li­za­mos un DataFrame que contiene valores NaN:

import pandas as pd
import numpy as np
# Creación de un DataFrame con datos de ejemplo
data = {
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
python

El DataFrame tiene este aspecto:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

En el siguiente paso se usa el método dropna() de Pandas:

## Eliminación de todas las filas que contienen al menos un valor NaN
df_cleaned = df.dropna()
print(df_cleaned)
python

Al ejecutar el código se produce el siguiente resultado:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Solo pe­r­ma­ne­cen la fila cero y la fila tres del DataFrame, ya que el resto de las filas contenían valores NaN.

Eli­mi­na­ción de columnas con valores faltantes

La eli­mi­na­ción de columnas con valores faltantes funciona de forma análoga al primer ejemplo. En este caso, solo es necesario es­ta­ble­cer el parámetro axis de la función en 1:

## Eliminación de todas las columnas que contienen al menos un valor NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
python

En el siguiente resultado podemos observar que solo queda la columna “C”, porque es la única que no contiene ningún valor NaN:

C
0   9
1  10
2  11
3  12

Uso del parámetro thresh

Si solo deseas eliminar las filas que tengan menos de dos valores no NaN, puedes utilizar el parámetro thresh:

## Eliminación de todas las filas con menos de dos valores no NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
python

Una vez que eje­cu­ta­mos este código, también permanece la primera fila, ya que contiene dos valores no NaN:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12

Uso del parámetro subset

El parámetro subset se utiliza para es­pe­ci­fi­car en qué columnas se buscarán valores faltantes. Solo se eli­mi­na­rán las filas que tengan valores faltantes en las columnas que se hayan indicado.

## Eliminación de todas las filas que contienen un valor NaN en la columna “A”:
df_subset = df.dropna(subset=['A'])
print(df_subset)
python

En este caso, solo se ha eliminado la segunda fila. El valor NaN en la primera fila se ha ignorado siguiendo el parámetro es­ta­ble­ci­do, porque la columna “B” no estaba incluida:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
Ir al menú principal