Pandas
Tutorial Pandas: Identificación de valores faltantes
Pandas: Aprende cómo identificar valores faltantes en datos utilizando funciones como `isna()`, `isnull()`, y técnicas avanzadas. Mejora tu análisis de datos manejando missing values.
Aprende Pandas GRATIS y certifícate¿Qué son los valores faltantes o missing values?
En el contexto de la manipulación y análisis de datos con Pandas, los valores faltantes, también conocidos como "missing values", representan datos que están ausentes en un conjunto de datos. Estos valores faltantes pueden surgir por diversas razones, como errores de entrada de datos, problemas de recolección de datos o simplemente porque la información no está disponible.
En Pandas, los valores faltantes se representan típicamente como NaN
(Not a Number), aunque también pueden aparecer como None
en ciertos casos.
La presencia de valores faltantes puede distorsionar los resultados del análisis estadístico y de machine learning, por lo que es crucial identificarlos y tratarlos adecuadamente.
Representación en Pandas
En Pandas, los valores faltantes se manejan principalmente con el objeto NaN
del módulo numpy
.
A continuación, se muestra un ejemplo básico de cómo Pandas representa los valores faltantes:
import pandas as pd
import numpy as np
data = {'col1': [1, 2, np.nan, 4],
'col2': [np.nan, 2, 3, 4]}
df = pd.DataFrame(data)
print(df)
El resultado será:
col1 col2
0 1.0 NaN
1 2.0 2.0
2 NaN 3.0
3 4.0 4.0
En este ejemplo, np.nan
se utiliza para representar valores faltantes en el DataFrame.
Importancia de identificar valores faltantes
La identificación de valores faltantes es un paso crítico en el proceso de limpieza y preparación de datos. Los valores faltantes pueden influir en:
- Resultados estadísticos: Las operaciones estadísticas como la media, mediana y desviación estándar pueden verse afectadas por la presencia de valores faltantes.
- Análisis de datos: Los gráficos y visualizaciones pueden ser engañosos si no se manejan adecuadamente los valores faltantes.
- Modelos de machine learning: Muchos algoritmos de aprendizaje automático no pueden manejar valores faltantes directamente y requieren que estos sean imputados o eliminados.
Métodos para tratar valores faltantes
Una vez identificados, existen varios métodos para manejar los valores faltantes en Pandas:
- Eliminación: Se pueden eliminar las filas o columnas que contienen valores faltantes.
- Imputación: Se pueden reemplazar los valores faltantes con un valor específico, como la media o la mediana de la columna.
- Interpolación: Se pueden estimar los valores faltantes utilizando métodos de interpolación.
Ejemplo de eliminación de filas con valores faltantes:
df_cleaned = df.dropna()
print(df_cleaned)
El resultado será:
col1 col2
1 2.0 2.0
3 4.0 4.0
Ejemplo de imputación de valores faltantes con la media de la columna:
df_filled = df.fillna(df.mean())
print(df_filled)
El resultado será:
col1 col2
0 1.0 3.0
1 2.0 2.0
2 2.333333 3.0
3 4.0 4.0
En este ejemplo, df.mean()
calcula la media de cada columna y fillna()
reemplaza los valores faltantes con la media correspondiente.
¿Cómo identificar valores faltantes en Pandas?
Para identificar valores faltantes en un DataFrame de Pandas, existen varias funciones y métodos que facilitan esta tarea.
isna()
: Este método devuelve un DataFrame de la misma forma que el original, pero con valores booleanos dondeTrue
indica la presencia de un valor faltante (NaN
oNone
) yFalse
indica la ausencia de valores faltantes.
import pandas as pd
import numpy as np
data = {'col1': [1, 2, np.nan, 4],
'col2': [np.nan, 2, 3, 4]}
df = pd.DataFrame(data)
# Identificar valores faltantes
missing_values = df.isna()
print(missing_values)
El resultado será:
col1 col2
0 False True
1 False False
2 True False
3 False False
isnull()
: Funcionalmente equivalente aisna()
,isnull()
también devuelve un DataFrame con valores booleanos indicando la presencia de valores faltantes.
missing_values = df.isnull()
print(missing_values)
El resultado será idéntico al del método isna()
.
notna()
: Este método es el inverso deisna()
y devuelveTrue
donde no hay valores faltantes yFalse
donde sí los hay.
not_missing_values = df.notna()
print(not_missing_values)
El resultado será:
col1 col2
0 True False
1 True True
2 False True
3 True True
notnull()
: Similar anotna()
,notnull()
también devuelveTrue
donde no hay valores faltantes yFalse
donde sí los hay.
not_missing_values = df.notnull()
print(not_missing_values)
El resultado será el mismo que el de notna()
.
info()
: Este método proporciona un resumen conciso del DataFrame, incluyendo la cantidad de valores no nulos en cada columna, lo que permite identificar rápidamente columnas con valores faltantes.
df.info()
El resultado será algo similar a:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 col1 3 non-null float64
1 col2 3 non-null float64
dtypes: float64(2)
memory usage: 192.0 bytes
sum()
combinado conisna()
: Para obtener un conteo de valores faltantes por columna.
missing_values_count = df.isna().sum()
print(missing_values_count)
El resultado será:
col1 1
col2 1
dtype: int64
any()
combinado conisna()
: Para verificar si hay algún valor faltante en el DataFrame o en columnas específicas.
any_missing = df.isna().any()
print(any_missing)
El resultado será:
col1 True
col2 True
dtype: bool
Para verificar si hay algún valor faltante en todo el DataFrame:
any_missing_overall = df.isna().any().any()
print(any_missing_overall)
El resultado será:
True
Estos métodos y funciones permiten identificar de manera eficiente y precisa los valores faltantes en un DataFrame de Pandas, facilitando el proceso de limpieza y preparación de datos para análisis posteriores y modelos de aprendizaje automático.
Interpretar la cantidad de valores faltantes
Para interpretar la cantidad de valores faltantes en un DataFrame de Pandas, es crucial no solo identificar su presencia, sino también cuantificar y analizar la distribución de estos valores a lo largo de las diferentes columnas y filas. Esto proporciona una visión clara de la magnitud del problema y ayuda a decidir la estrategia adecuada para tratar los valores faltantes.
A continuación, se describen varias técnicas y métodos para interpretar la cantidad de valores faltantes.
- Conteo de valores faltantes por columna: Utilizando el método
isna()
junto consum()
, podemos obtener un conteo de los valores faltantes en cada columna. Esto es útil para identificar columnas con un alto número de valores faltantes que podrían requerir atención especial.
import pandas as pd
import numpy as np
data = {
'col1': [1, 2, np.nan, 4, 5, np.nan, 7, 8, 9, np.nan],
'col2': [np.nan, 2, 3, np.nan, 5, 6, np.nan, 8, 9, 10],
'col3': [1, np.nan, np.nan, 4, 5, 6, np.nan, np.nan, 9, 10],
'col4': [np.nan, np.nan, 3, 4, 5, np.nan, 7, np.nan, 9, 10],
'col5': [1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan]
}
df = pd.DataFrame(data)
missing_values_count = df.isna().sum()
print(missing_values_count)
El resultado será:
col1 3
col2 3
col3 4
col4 4
col5 1
dtype: int64
- Porcentaje de valores faltantes por columna: Para una mejor comprensión, se puede calcular el porcentaje de valores faltantes en relación al número total de entradas en cada columna. Esto es particularmente útil cuando se trabaja con grandes conjuntos de datos.
total_cells = df.size
total_missing = df.isna().sum().sum()
percent_missing = (total_missing / total_cells) * 100
print(percent_missing)
El resultado será el porcentaje de valores faltantes en el DataFrame completo.
- Visualización de valores faltantes: Las visualizaciones pueden proporcionar una forma intuitiva de interpretar la cantidad de valores faltantes. Utilizando bibliotecas como
matplotlib
yseaborn
, se pueden crear gráficos de calor (heatmaps) para visualizar la distribución de los valores faltantes.
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = {
'col1': [1, 2, np.nan, 4, 5, np.nan, 7, 8, 9, np.nan],
'col2': [np.nan, 2, 3, np.nan, 5, 6, np.nan, 8, 9, 10],
'col3': [1, np.nan, np.nan, 4, 5, 6, np.nan, np.nan, 9, 10],
'col4': [np.nan, np.nan, 3, 4, 5, np.nan, 7, np.nan, 9, 10],
'col5': [1, 2, 3, 4, 5, 6, 7, 8, 9, np.nan]
}
df = pd.DataFrame(data)
# Mapa de calor de los valores faltantes
sns.heatmap(df.isna(), cbar=False, cmap='viridis')
plt.show()
Este código produce un mapa de calor donde las celdas con valores faltantes se muestran en un color diferente, permitiendo una rápida identificación visual de patrones.
- Distribución de valores faltantes en filas: Además de las columnas, también es importante analizar la distribución de valores faltantes a lo largo de las filas. Esto se puede lograr sumando los valores faltantes por fila.
missing_values_per_row = df.isna().sum(axis=1)
print(missing_values_per_row)
El resultado será:
0 2
1 2
2 2
3 1
4 0
5 2
6 2
7 2
8 0
9 2
dtype: int64
- Histograma de valores faltantes: Para una visualización más detallada, se puede crear un histograma que muestre la distribución de la cantidad de valores faltantes por fila.
missing_values_per_row.plot(kind='hist', bins=range(0, df.shape[1] + 1))
plt.xlabel('Número de valores faltantes por fila')
plt.ylabel('Frecuencia')
plt.show()
Este histograma ayuda a identificar si hay muchas filas con un alto número de valores faltantes, lo que podría influir en la decisión de eliminar o imputar dichas filas.
- Análisis de valores faltantes en grupos de datos: En algunos casos, puede ser útil analizar los valores faltantes en diferentes subconjuntos de los datos. Por ejemplo, si los datos están categorizados por una variable específica, se puede calcular el porcentaje de valores faltantes en cada categoría.
grouped_missing = df.groupby('col1').apply(lambda x: x.isna().sum())
print(grouped_missing)
Este enfoque permite identificar si los valores faltantes están concentrados en ciertos grupos, lo que puede ser relevante para el análisis posterior.
Interpretar la cantidad de valores faltantes de manera correcta es esencial para tomar decisiones informadas sobre cómo manejarlos. Estas técnicas y métodos proporcionan una comprensión profunda de la distribución y magnitud de los valores faltantes en los datos, facilitando así el proceso de limpieza y preparación de los mismos.
Ejercicios de esta lección Identificación de valores faltantes
Evalúa tus conocimientos de esta lección Identificación de valores faltantes 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 valores faltantes y su representación en Pandas.
- Aprender a identificar valores faltantes usando métodos como
isna()
,isnull()
,notna()
,notnull()
. - Conocer la importancia de identificar valores faltantes en el análisis y preparación de datos.
- Aplicar técnicas para interpretar y cuantificar valores faltantes.
- Visualizar la distribución de valores faltantes en filas y columnas.
- Implementar estrategias de tratamiento como eliminación e imputación de valores faltantes.