Limpieza de Datos con Pandas: Valores Nulos

pandas/pandas-parte5
@Lautaroff 24-03-2025

Al trabajar con datos, es común encontrar valores faltantes (nulos) y registros duplicados. En esta sección se muestran ejemplos sencillos para detectar y solucionar estos problemas utilizando Pandas.

Manejo de Valores Nulos

1. Identificar Valores Nulos

Usa isnull() y sum() para ver cuántos valores faltan en cada columna.

import pandas as pd

# Ejemplo de DataFrame con algunos valores faltantes
data = {
  'Nombre': ['Ana', 'Luis', 'Carlos', None],
  'Edad': [23, None, 35, 29],
  'Ciudad': ['Madrid', 'Barcelona', 'Valencia', 'Sevilla']
}
df = pd.DataFrame(data)
print("Valores nulos por columna:")
print(df.isnull().sum())

2. Eliminar Filas con Valores Nulos

El método dropna() elimina filas que tengan algún valor nulo.

df_sin_nulos = df.dropna()
print("DataFrame sin filas con valores nulos:")
print(df_sin_nulos)

3. Reemplazar Valores Nulos

Con fillna() se pueden sustituir los valores faltantes por un valor específico, como la media de la columna.

# Calcular la media de la columna 'Edad' (excluyendo nulos)
media_edad = df['Edad'].mean()
# Reemplazar los valores nulos en 'Edad' por la media
df['Edad'] = df['Edad'].fillna(media_edad)
print("DataFrame con los nulos de 'Edad' reemplazados por la media:")
print(df)

Detección y Eliminación de Duplicados

1. Identificar Registros Duplicados

El método duplicated() marca las filas que se repiten.

data_dup = {
  'ID': [1, 2, 2, 3, 4, 4, 4],
  'Nombre': ['Ana', 'Luis', 'Luis', 'Carlos', 'María', 'María', 'María']
}
df_dup = pd.DataFrame(data_dup)
print("Registro duplicado (True indica duplicado):")
print(df_dup.duplicated())

2. Eliminar Registros Duplicados

Con drop_duplicates() se eliminan las filas repetidas.

df_sin_duplicados = df_dup.drop_duplicates()
print("DataFrame sin registros duplicados:")
print(df_sin_duplicados)
Lección Anterior Curso Siguiente Lección