Pandas Where: Aprovechando el poder de Pandas para gestionar valores nulos
Updated on
Trabajar con datos está en el núcleo de lo que hacemos. Sin embargo, los datos sin procesar suelen ser desordenados, incompletos y estar llenos de valores nulos que hay que tratar. Sin un manejo adecuado, los valores nulos pueden causar problemas al realizar análisis de datos o tareas de machine learning. Afortunadamente, con la librería Pandas en Python, podemos gestionar de forma rápida y eficaz los valores nulos en nuestros datos.
En este artículo, exploraremos la función where() de Pandas y varias otras técnicas para manejar valores nulos en Pandas. Veremos cómo identificar y tratar datos faltantes en un DataFrame de Pandas, estrategias para trabajar con valores nulos, buenas prácticas para gestionar valores faltantes y mucho más.
Cuándo usar where() vs mask()
where() mantiene los valores que satisfacen una condición y reemplaza el resto; mask() hace lo inverso. Ambas respetan la semántica anulable de pandas (pd.NA) en pandas 2.x.
import pandas as pd
s = pd.Series([10, None, 30, 40], dtype="Int64")
keep_under_35 = s.where(s < 35) # 40 becomes <NA>
mask_nulls = s.mask(s.isna(), 0) # fill nulls without touching valid rowsUsa where() cuando quieras conservar las entradas válidas y establecer como nulas las demás, y combínalo con fillna cuando necesites valores por defecto.
¿Quieres crear visualizaciones de datos rápidamente en Python?
PyGWalker es un proyecto de Python Open Source que puede ayudar a acelerar el flujo de trabajo de análisis y visualización de datos directamente dentro de entornos basados en Jupyter Notebook.
PyGWalker (opens in a new tab) convierte tu Pandas DataFrame (o Polars DataFrame) en una interfaz visual donde puedes arrastrar y soltar variables para crear gráficos fácilmente. Simplemente utiliza el siguiente código:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)Puedes ejecutar PyGWalker ahora mismo con estos notebooks online:
Y no olvides dejarnos una ⭐️ en GitHub.
Identificación y gestión de datos faltantes en un DataFrame de Pandas
Una de las tareas más comunes cuando trabajamos con datos es comprobar si existen datos faltantes. Pandas ofrece varias formas de identificar valores nulos, incluyendo isnull() y notnull(), que devuelven valores booleanos para indicar si alguno de los valores en el DataFrame es nulo o no. Podemos usar estas funciones para averiguar rápidamente si hay valores faltantes en nuestros datos.
Por ejemplo, supongamos que tenemos un DataFrame con varias columnas, algunas de las cuales contienen valores faltantes.
import pandas as pd
import numpy as np
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, np.nan, 30],
'gender': ['F', 'M', 'M'],
'income': [50000, 60000, np.nan]}
df = pd.DataFrame(data)Para comprobar si hay valores faltantes en nuestro DataFrame, podemos aplicar la función isnull() a todo el DataFrame.
print(df.isnull())Esto devolverá un DataFrame con la misma forma que el DataFrame original, donde True representa un valor nulo y False representa un valor no nulo.
Para contar el número de valores faltantes en cada columna de nuestro DataFrame, podemos usar el método sum() después de aplicar la función isnull().
print(df.isnull().sum())Esto devolverá un objeto Series donde el índice son los nombres de las columnas y los valores son el número de valores faltantes en cada columna.
También podemos eliminar filas o columnas con valores nulos usando el método dropna(). Este método elimina cualquier fila o columna que contenga al menos un valor nulo.
df.dropna()De forma alternativa, podemos reemplazar los valores nulos por un valor específico usando la función fillna().
df.fillna(0)Estos son solo algunos ejemplos de los métodos disponibles en Pandas para identificar y manejar valores nulos. Para una lista completa, consulta la documentación de Pandas.
Trabajando con valores nulos en Pandas
Los valores nulos pueden ser un reto al realizar análisis de datos o tareas de machine learning. Sin embargo, existen muchas estrategias que podemos utilizar para trabajar eficazmente con valores nulos. Aquí hay algunas de ellas:
Interpolación
Una técnica común para tratar con datos faltantes es la interpolación. La interpolación es una técnica estadística que estima valores faltantes basándose en valores observados en filas cercanas. En Pandas, podemos usar el método interpolate() para realizar interpolación en nuestro DataFrame.
df.interpolate()Rellenar valores faltantes
Otra estrategia para trabajar con valores nulos es rellenar los valores faltantes con una constante o un valor calculado a partir de los datos restantes. Podemos usar el método fillna() para rellenar valores nulos con un valor específico.
df.fillna(0)De forma alternativa, podemos rellenar los valores nulos con la media, la moda o la mediana de los datos restantes.
df.fillna(df.mean())Eliminación de valores faltantes
Eliminar valores faltantes es una estrategia común para manejar valores nulos. Podemos usar el método dropna() para eliminar todas las filas que contienen uno o más valores nulos.
df.dropna()También podemos eliminar columnas que contienen valores nulos.
df.dropna(axis=1)Imputación
La imputación es una técnica para estimar valores faltantes basándose en datos observados. En Pandas, podemos usar el paquete scikit-learn para realizar imputación.
from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values=np.nan, strategy='mean')
df[['age', 'income']] = imp.fit_transform(df[['age', 'income']])Estos son solo algunos ejemplos de las muchas estrategias disponibles para trabajar con valores nulos en Pandas. La estrategia adecuada depende del problema específico y de la naturaleza de los datos faltantes.
Mejores prácticas para gestionar valores faltantes en Pandas
Tratar con datos faltantes puede ser un desafío, pero hay algunas buenas prácticas que pueden ayudar. Aquí tienes algunos consejos para gestionar valores nulos en Pandas:
- Comprueba siempre si hay datos faltantes antes de realizar cualquier análisis.
- Usa estadísticas descriptivas para entender la distribución de los datos e identificar valores atípicos.
- Considera diferentes estrategias para manejar datos faltantes, como interpolación, imputación o eliminación de valores faltantes.
- Ten en cuenta las posibles consecuencias de las diferentes estrategias y cómo pueden afectar al análisis.
- Utiliza herramientas de visualización de datos para obtener información sobre la naturaleza y la distribución de los datos.
- Documenta los valores faltantes y cómo se trataron en el análisis.
Si seguimos estas mejores prácticas, podremos gestionar mejor los valores nulos en nuestros datos y realizar de forma eficaz tareas de análisis de datos o machine learning.
Conclusión
Los valores nulos pueden suponer un reto al trabajar con datos, pero con Pandas tenemos acceso a un potente conjunto de herramientas para identificar y manejar datos faltantes. En este artículo, hemos explorado la función where() de Pandas y varias otras técnicas y estrategias para trabajar con valores nulos en Pandas. Al aplicar estas técnicas y seguir las mejores prácticas, podemos gestionar mejor los valores nulos en nuestros datos y realizar análisis de datos y tareas de machine learning de forma efectiva.


