Frogames Python Expert
Cursos Premium

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.

Ver ahora