Pandas
Tutorial Pandas: Identificar y corregir outliers
Pandas: identificar y corregir outliers en DataFrames. Aprende métodos como desviación estándar, IQR y visualización para manejar valores atípicos y mejorar tus análisis y modelos predictivos.
Aprende Pandas GRATIS y certifícate¿Qué son los outliers en DataFrames?
Los outliers, también conocidos como valores atípicos, son observaciones en un conjunto de datos que se desvían significativamente de otras observaciones. En el contexto de un DataFrame en Pandas, los outliers pueden distorsionar el análisis estadístico y afectar negativamente a los modelos de aprendizaje automático. Identificar y gestionar estos valores es crucial para asegurar la integridad y calidad de los datos.
Los valores atípicos pueden surgir por diversas razones, tales como errores de medición, errores de entrada de datos, o simplemente porque representan casos excepcionales que son inherentemente diferentes del resto de las observaciones.
En un DataFrame, los outliers se pueden identificar en diferentes tipos de datos, pero son más comunes en datos numéricos. Los outliers pueden ser un valor extremadamente alto o bajo en comparación con el resto de los datos. Por ejemplo, en un DataFrame que contiene información sobre los ingresos de personas, un ingreso extremadamente alto o bajo comparado con el promedio puede ser considerado un outlier.
Para ilustrar cómo se ven los outliers en un DataFrame, consideremos el siguiente ejemplo de un conjunto de datos que contiene la edad de un grupo de personas:
import pandas as pd
data = {'Nombre': ['Ana', 'Luis', 'Carlos', 'Marta', 'Pedro'],
'Edad': [22, 23, 120, 24, 25]}
df = pd.DataFrame(data)
print(df)
En este ejemplo, la edad de Carlos
es 120, que es significativamente mayor que las edades de los demás. Este valor es un claro outlier.
Los outliers pueden tener efectos adversos en el análisis de datos y en la construcción de modelos predictivos. Algunos de los problemas que pueden causar incluyen:
- Distorsión de estadísticas descriptivas: Los outliers pueden afectar medidas como la media y la desviación estándar, haciendo que no representen adecuadamente la distribución central de los datos.
- Influencia en modelos de aprendizaje automático: Los modelos de regresión y otros algoritmos pueden ser muy sensibles a los outliers, lo que puede llevar a predicciones menos precisas.
- Impacto en la visualización de datos: Los outliers pueden hacer que las visualizaciones sean menos claras y más difíciles de interpretar.
Es importante tener en cuenta que no todos los outliers son necesariamente incorrectos o deben ser eliminados. En algunos casos, los outliers pueden contener información valiosa. Por ello, es esencial analizar el contexto y la causa de los outliers antes de decidir cómo manejarlos.
¿Cómo se detectan los outliers en DataFrames?
Detectar outliers en DataFrames utilizando Pandas puede realizarse a través de diversas técnicas, cada una adecuada para diferentes tipos de datos y contextos. Aquí se describen algunas de las técnicas más comunes y efectivas para la detección de outliers:
- Método de la desviación estándar: Los outliers son identificados como aquellos valores que se desvían significativamente de la media. Se utiliza la desviación estándar como criterio para determinar qué tan lejos está un valor de la media.
import pandas as pd
import numpy as np
data = {'Nombre': ['Ana', 'Luis', 'Carlos', 'Marta', 'Pedro'],
'Edad': [22, 23, 120, 24, 25]}
df = pd.DataFrame(data)
# Calcular la media y la desviación estándar
mean = df['Edad'].mean()
std_dev = df['Edad'].std()
# Definir el umbral para los outliers (por ejemplo, 1 desviación estándar)
threshold = 1
# Identificar los outliers
df['Es_Outlier'] = np.abs(df['Edad'] - mean) > (threshold * std_dev)
print(df)
- Método del rango intercuartílico (IQR): Este método es robusto frente a la presencia de outliers y se basa en calcular el rango intercuartílico, que es la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1). Los valores que se encuentran fuera de 1.5 veces el IQR por debajo de Q1 o por encima de Q3 son considerados outliers.
Q1 = df['Edad'].quantile(0.25)
Q3 = df['Edad'].quantile(0.75)
IQR = Q3 - Q1
# Definir los límites inferior y superior
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# Identificar los outliers
df['Es_Outlier'] = (df['Edad'] < lower_bound) | (df['Edad'] > upper_bound)
print(df)
- Método de visualización: Las técnicas de visualización como los gráficos de caja (boxplots) y los gráficos de dispersión (scatter plots) pueden ser útiles para detectar outliers de manera visual. Estas técnicas permiten identificar rápidamente valores que se desvían del patrón general de los datos.
import matplotlib.pyplot as plt
# Crear un boxplot para visualizar los outliers
plt.boxplot(df['Edad'])
plt.title("Boxplot de Edad")
plt.show()
- Método Z-Score: El Z-Score mide la distancia de un valor respecto a la media en términos de desviaciones estándar. Un valor Z-Score alto o bajo indica que el valor es un outlier.
from scipy import stats
# Calcular el Z-Score
df['Z_Score'] = stats.zscore(df['Edad'])
# Definir el umbral para los outliers (por ejemplo, Z-Score > 1 o < -1)
df['Es_Outlier'] = (df['Z_Score'] > 1) | (df['Z_Score'] < -1)
print(df)
Cada uno de estos métodos tiene sus propias ventajas y desventajas. La elección del método adecuado depende del contexto del análisis y de las características específicas del conjunto de datos. Es importante considerar el impacto potencial de los outliers en el análisis y en los modelos predictivos y elegir el método que mejor se adapte a las necesidades del proyecto.
¿En qué consiste la técnica del rango intercuartílico y cómo arregla los outliers?
La técnica del rango intercuartílico (IQR, por sus siglas en inglés) es un método estadístico robusto utilizado para identificar y manejar outliers en un conjunto de datos. El IQR se calcula como la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1), representando la dispersión de la mitad central de los datos. Esta técnica es especialmente útil porque no se ve afectada por la presencia de valores extremos como la media y la desviación estándar.
Para aplicar la técnica del IQR en Pandas y corregir los outliers, se deben seguir estos pasos:
Calcular los cuartiles
Determinar el primer cuartil (Q1) y el tercer cuartil (Q3) del conjunto de datos. Estos cuartiles dividen los datos en cuatro partes iguales.
import pandas as pd
data = {'Nombre': ['Ana', 'Luis', 'Carlos', 'Marta', 'Pedro', 'Juan', 'Sara'],
'Edad': [22, 23, 120, 24, 25, 22, 23]}
df = pd.DataFrame(data)
# Calcular Q1 y Q3
Q1 = df['Edad'].quantile(0.25)
Q3 = df['Edad'].quantile(0.75)
Calcular el IQR
El IQR es la diferencia entre Q3 y Q1.
IQR = Q3 - Q1
Determinar los límites inferior y superior
Estos límites se utilizan para identificar los outliers. Los valores que se encuentran fuera de estos límites se consideran outliers. Los límites se calculan como:
- Límite inferior: Q1 - 1.5 * IQR
- Límite superior: Q3 + 1.5 * IQR
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
Identificar los outliers
Utilizando los límites calculados, se marcan los valores que están por debajo del límite inferior o por encima del límite superior.
df['Es_Outlier'] = (df['Edad'] < lower_bound) | (df['Edad'] > upper_bound)
print(df)
Corregir los outliers
Existen varias estrategias para manejar los outliers una vez identificados. Algunas de las más comunes son:
- Eliminación de outliers: Esta estrategia consiste en eliminar las filas del DataFrame que contienen outliers.
df_sin_outliers = df[~df['Es_Outlier']]
print(df_sin_outliers)
- Imputación de outliers: Sustituir los outliers por valores más representativos, como la media o la mediana de los datos.
# Imputar con la mediana
mediana = df['Edad'].median()
df['Edad'] = df.apply(lambda row: mediana if row['Es_Outlier'] else row['Edad'], axis=1)
print(df)
- Transformación de datos: Aplicar transformaciones como logaritmos o raíces cuadradas para reducir la influencia de los outliers.
import numpy as np
# Aplicar la transformación logarítmica
df['Edad_log'] = np.log(df['Edad'])
print(df)
La técnica del IQR es particularmente útil en datasets con distribuciones no normales, ya que no se ve influenciada por la asimetría de los datos. Además, es fácil de implementar y entender, lo que la hace una herramienta valiosa en la limpieza y preparación de datos.
Ejercicios de esta lección Identificar y corregir outliers
Evalúa tus conocimientos de esta lección Identificar y corregir outliers con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Introducción e instalación de pandas
Operaciones de filtrado, búsqueda y ordenación
Operaciones de cadena de texto y categóricas
Tratamiento de valores faltantes
Manipulación de DataFrames
Codificación de variables categóricas a numéricas
Tipos de datos en DataFrames
Identificar y corregir errores y duplicados
Operaciones matemáticas y estadísticas
Evaluación código conocimiento general de Pandas
Evaluación multirespuesta Conocimiento general de Pandas
Integración de Pandas con Matplotlib
Operaciones con fechas
Entrada de datos externos y salida de datos con Pandas
Análisis de datos de eventos deportivos con Pandas en Python
Identificar y corregir outliers
Series
Integración de Pandas con Seaborn
Operaciones de conjuntos
Identificación de valores faltantes
DataFrames
Análisis de datos de ventas con Numpy y Pandas
Todas las lecciones de Pandas
Accede a todas las lecciones de Pandas y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción E Instalación De Pandas
Introducción Y Entorno
Series
Estructuras De Datos
Dataframes
Estructuras De Datos
Tipos De Datos En Dataframes
Estructuras De Datos
Manipulación De Dataframes
Manipulación De Datos
Operaciones De Filtrado, Búsqueda Y Ordenación
Manipulación De Datos
Operaciones De Cadena De Texto Y Categóricas
Manipulación De Datos
Operaciones Matemáticas Y Estadísticas
Manipulación De Datos
Operaciones Con Fechas
Manipulación De Datos
Operaciones De Conjuntos
Manipulación De Datos
Identificación De Valores Faltantes
Limpieza Y Preparación De Datos
Tratamiento De Valores Faltantes
Limpieza Y Preparación De Datos
Identificar Y Corregir Errores Y Duplicados
Limpieza Y Preparación De Datos
Identificar Y Corregir Outliers
Limpieza Y Preparación De Datos
Codificación De Variables Categóricas A Numéricas
Limpieza Y Preparación De Datos
Entrada De Datos Externos Y Salida De Datos Con Pandas
Integraciones
Integración De Pandas Con Matplotlib
Integraciones
Integración De Pandas Con Seaborn
Integraciones
Evaluación Multirespuesta Conocimiento General De Pandas
Evaluación Pandas
Evaluación Código Conocimiento General De Pandas
Evaluación Pandas
Certificados de superación de Pandas
Supera todos los ejercicios de programación del curso de Pandas y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
Comprender qué son los outliers y por qué es crucial manejarlos.
Identificar outliers en DataFrames utilizando Pandas.
Implementar métodos de detección de outliers: desviación estándar, IQR, Z-Score y visualización.
Aplicar técnicas para corregir outliers e integrar datos confiables.