La función DataFrame.dropna() de la Biblioteca 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 principales herramientas para la preparación y limpieza de datos.

Web Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Seguro con SSL y protección DDoS
  • Dominio y asesor personal incluidos

Sintaxis de dropna() en Pandas

La función dropna() de Pandas acepta hasta cinco parámetros y su sintaxis básica es bastante simple:

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

Parámetros relevantes

El comportamiento de la función DataFrame.dropna() puede verse influenciado por los parámetros que se le pasan. Los parámetros más importantes se resumen en la siguiente tabla:

Parámetro Descripció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 consideradas 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 etiquetará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 evaluaciones estadísticas. Además, facilita la creación de gráficos e informes, dado que la presencia de valores faltantes puede provocar representaciones incorrectas en algunos casos.

Eliminar filas con valores faltantes

En el siguiente código analizamos 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 permanecen la fila cero y la fila tres del DataFrame, ya que el resto de las filas contenían valores NaN.

Eliminación de columnas con valores faltantes

La eliminación de columnas con valores faltantes funciona de forma análoga al primer ejemplo. En este caso, solo es necesario establecer 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 ejecutamos 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 especificar en qué columnas se buscarán valores faltantes. Solo se eliminará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 establecido, 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
¿Le ha resultado útil este artículo?
Ir al menú principal