0Pricing
Learn AI with Python · Lección

Tablas dinámicas y tabulación cruzada

pd.pivot_table(), pd.crosstab() y transformación de datos para obtener estadísticas resumidas.

Tablas dinámicas y tabulación cruzada es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Reestructuración para extraer información

Una tabla dinámica reestructura datos en formato largo como una cuadrícula y resume un valor a lo largo de dos ejes categóricos. Es la tabla dinámica de hoja de cálculo que ya conoce, pero programable.

import pandas as pd
df = pd.DataFrame({
    "region": ["E", "E", "W", "W", "E"],
    "product": ["A", "B", "A", "B", "A"],
    "sales": [10, 20, 30, 40, 50],
})

pivot_table básico

pd.pivot_table recibe values (los números que se resumirán), index (las filas) y columns (las columnas). De forma predeterminada, calcula la media de las celdas duplicadas.

pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product     A     B
# region
# E        30.0  20.0
# W        30.0  40.0

Elección de aggfunc

Establezca aggfunc para controlar cómo se combinan los duplicados: suma, media, recuento y muchas opciones más. Use una lista para aplicar varias a la vez.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum")
print(pt)

Varias aggfunc

Pase una lista de funciones para calcular varios resúmenes uno al lado del otro.

pt = pd.pivot_table(df, values="sales", index="region",
                    aggfunc=["sum", "mean", "count"])
print(pt)

Rellenar celdas ausentes

Las combinaciones sin datos se convierten en NaN. fill_value las reemplaza, a menudo con 0, para generar informes limpios.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum", fill_value=0)
print(pt)

Márgenes (totales)

Establezca margins=True para añadir los totales generales de filas y columnas, etiquetados como "All" de forma predeterminada.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum",
                    fill_value=0, margins=True)
print(pt)

Múltiples niveles de índice

Pase listas a index o columns para obtener desgloses jerárquicos, por ejemplo, primero por región y después por producto.

df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
                    index=["region", "channel"], aggfunc="sum")
print(pt)

Tabulación cruzada con crosstab

pd.crosstab es una tabla dinámica especializada que CUENTA la frecuencia de las combinaciones de dos variables categóricas; no necesita ninguna columna de valores.

ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product   A  B
# region
# E         2  1
# W         1  1

Normalización de crosstab

El argumento normalize convierte los recuentos en proporciones: "index" por fila, "columns" por columna o True sobre el total general.

ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct)   # each row sums to 1.0

crosstab con valores

Proporcione values y aggfunc para que crosstab resuma una métrica en lugar de contar, acercándose así a la funcionalidad de pivot_table.

ct = pd.crosstab(df["region"], df["product"],
                 values=df["sales"], aggfunc="sum")
print(ct)

pivot_table frente a crosstab

Use pivot_table para resumir un valor numérico; use crosstab para contar las frecuencias de las combinaciones de categorías. crosstab también permite normalizar a proporciones en una sola línea.

Comprobación rápida

Ponga a prueba sus conocimientos de reestructuración.

Resumen

Herramientas de reestructuración:

  • pd.pivot_table(values, index, columns, aggfunc) resume una métrica
  • fill_value para celdas vacías y margins=True para los totales
  • Use listas en index/columns para crear jerarquías
  • pd.crosstab cuenta combinaciones; normalize produce proporciones

Preguntas frecuentes

¿La lección «Tablas dinámicas y tabulación cruzada» es gratis?

Sí — el texto completo de «Tablas dinámicas y tabulación cruzada» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Tablas dinámicas y tabulación cruzada»?

pd.pivot_table(), pd.crosstab() y transformación de datos para obtener estadísticas resumidas. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Tablas dinámicas y tabulación cruzada»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. GroupBy y agregación
  2. Tablas dinámicas y tabulación cruzada
  3. Fusión y combinación avanzadas
  4. Series temporales en Pandas
← Volver a Learn AI with Python