Datos y Pandas
Pandas es el estándar del sector para analizar datos en Python. Si trabajas con IA, tarde o temprano tendrás que preparar y limpiar datasets — aquí empieza esa habilidad.
1. El DataFrame: una Tabla en Python
La estructura más importante de Pandas es el DataFrame: básicamente una tabla con filas y columnas, como una hoja de Excel, pero con todo el poder de Python disponible.
import pandas as pd
# Crear un DataFrame desde un diccionario
datos = {
"nombre": ["Ana", "Carlos", "Lucía", "Marcos"],
"edad": [28, 34, 25, 41],
"ciudad": ["Madrid", "Barcelona", "Madrid", "Sevilla"],
"salario": [42000, 58000, 36000, 67500]
}
df = pd.DataFrame(datos)
print(df)
# nombre edad ciudad salario
# 0 Ana 28 Madrid 42000
# 1 Carlos 34 Barcelona 58000
# 2 Lucía 25 Madrid 36000
# 3 Marcos 41 Sevilla 67500
2. Leer y Explorar Datos del Mundo Real
En la práctica, los datos llegan en ficheros CSV, Excel o desde una API. Pandas los carga en un DataFrame con una sola línea.
import pandas as pd
# Leer un CSV
df = pd.read_csv("ventas.csv")
# Primeras y últimas filas
print(df.head(5)) # 5 primeras filas
print(df.tail(3)) # 3 últimas filas
# Dimensiones: (filas, columnas)
print(df.shape) # (1523, 8)
# Tipos de datos de cada columna
print(df.dtypes)
# Estadísticas descriptivas de un vistazo
print(df.describe())
3. Seleccionar y Filtrar Datos
La forma más común de trabajar con Pandas es seleccionar subconjuntos del DataFrame según condiciones:
# Seleccionar una columna (devuelve una Serie)
edades = df["edad"]
# Seleccionar varias columnas (devuelve un DataFrame)
perfil = df[["nombre", "ciudad"]]
# Filtrar filas: empleados de Madrid
madrid = df[df["ciudad"] == "Madrid"]
# Filtrar con múltiples condiciones
senior_madrid = df[(df["ciudad"] == "Madrid") & (df["edad"] > 30)]
# Los 3 empleados mejor pagados
top3 = df.nlargest(3, "salario")
# Ordenar por salario descendente
ordenado = df.sort_values("salario", ascending=False)
4. Limpieza y Transformación Básica
Los datos del mundo real siempre tienen imperfecciones. Esto es lo que harás el 70% del tiempo en un proyecto de datos:
Valores nulos
# Ver cuántos nulos hay
df.isnull().sum()
# Eliminar filas con nulos
df_limpio = df.dropna()
# Rellenar nulos con un valor
df["salario"] = df["salario"].fillna(0)
Transformar columnas
# Crear una nueva columna
df["salario_mensual"] = df["salario"] / 12
# Aplicar una función a una columna
df["nombre"] = df["nombre"].str.upper()
# Renombrar columnas
df = df.rename(columns={"edad": "years"})
Agrupar y agregar (groupby)
# Salario medio por ciudad
media_ciudad = df.groupby("ciudad")["salario"].mean()
print(media_ciudad)
# Múltiples agregaciones
resumen = df.groupby("ciudad").agg(
num_empleados=("nombre", "count"),
salario_medio=("salario", "mean"),
salario_max=("salario", "max")
)
print(resumen)
¿Listo para convertirte en un Maestro?
Potencia tu carrera con el Máster Completo: Python de la A a la Z. Domina Ciencia de Datos, ML y Deep Learning.