Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Las **agrupaciones** y los **resúmenes** son técnicas esenciales en el análisis de datos. Con Pandas, puedes agrupar datos por una o varias columnas y luego calcular resúmenes como la suma, la media, la cuenta, o cualquier función agregada. Aquí te explico cómo hacerlo paso a paso. ## **1. Agrupar Datos por una o Varias Columnas** ### a) **Agrupar por una sola columna** import pandas as pd \# Crear un DataFrame de ejemplo data = { 'producto': \['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B'], 'ventas': \[100, 200, 300, 150, 250, 350, 400, 300], } df = pd.DataFrame(data) \# Agrupar por la columna 'producto' y calcular la suma de ventas agrupado = df.groupby('producto')\['ventas'].sum() print(agrupado) ### Salida: producto A 600 B 750 C 650 Name: ventas, dtype: int64 ### b) **Agrupar por varias columnas** \# Agrupar por 'producto' y 'categoria' y calcular la suma de ventas agrupado = df.groupby(\['producto', 'categoria'])\['ventas'].sum() print(agrupado) ### Salida: producto categoria A electronicos 400 muebles 200 B electronicos 500 muebles 300 C electronicos 350 muebles 300 Name: ventas, dtype: int64 ## **2. Aplicar Agregados sobre Agrupaciones** ### a) **Suma** \# Calcular la suma por producto suma\_ventas = df.groupby('producto')\['ventas'].sum() print(suma\_ventas) ### b) **Media (promedio)** \# Calcular la media de ventas por producto media\_ventas = df.groupby('producto')\['ventas'].mean() print(media\_ventas) ### c) **Cuenta** \# Contar el número de registros por producto cuenta\_productos = df.groupby('producto').size() print(cuenta\_productos) ### d) **Mínimo y Máximo** \# Calcular el mínimo y máximo de ventas por producto min\_max\_ventas = df.groupby('producto')\['ventas'].agg(\['min', 'max']) print(min\_max\_ventas) ### e) **Función personalizada** \# Aplicar una función personalizada def diferencia\_min\_max(x): return x.max() - x.min() diferencia\_ventas = df.groupby('producto')\['ventas'].agg(diferencia\_min\_max) print(diferencia\_ventas) ## **3. Pivot Tables para Agrupaciones** La función `pivot_table` es útil para crear tablas pivoteadas donde puedes agrupar y resumir datos. \# Crear una tabla pivote con la suma de ventas por producto y categoría tabla\_pivote = df.pivot\_table(values='ventas', index='producto', columns='categoria', aggfunc='sum', fill\_value=0) print(tabla\_pivote) ### Salida: categoria electronicos muebles producto A 400 200 B 500 300 C 350 300 ## **4. Uso de .agg() para múltiples funciones** Con `agg()` puedes aplicar múltiples funciones a las columnas en un solo paso. \# Aplicar múltiples funciones al mismo tiempo resumen\_multiples = df.groupby('producto')\['ventas'].agg(\['sum', 'mean', 'max']) print(resumen\_multiples) ### Salida: sum mean max producto A 600 200.000000 400 B 750 250.000000 500 C 650 216.666667 350 ## **5. Visualización con Agrupaciones** import matplotlib.pyplot as plt \# Agrupar por producto y calcular la suma de ventas agrupado = df.groupby('producto')\['ventas'].sum() \# Graficar las ventas agrupadas agrupado.plot(kind='bar') plt.title("Ventas por Producto") plt.xlabel("Producto") plt.ylabel("Ventas") plt.show() ### **Ejemplo Completo** import pandas as pd \# Crear DataFrame de ejemplo data = { 'producto': \['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B'], 'categoria': \['electronicos', 'muebles', 'electronicos', 'electronicos', 'muebles', 'electronicos', 'muebles', 'muebles'], 'ventas': \[100, 200, 300, 150, 250, 350, 400, 300], } df = pd.DataFrame(data) \# Agrupar y calcular sumas de ventas agrupado = df.groupby('producto')\['ventas'].sum() print("Ventas Totales por Producto:\n", agrupado) \# Aplicar múltiples funciones resumen = df.groupby('producto')\['ventas'].agg(\['sum', 'mean', 'max']) print("\nResumen Detallado:\n", resumen) \# Tabla pivote tabla\_pivote = df.pivot\_table(values='ventas', index='producto', columns='categoria', aggfunc='sum', fill\_value=0) print("\nTabla Pivote:\n", tabla\_pivote) \# Visualización agrupado.plot(kind='bar') plt.title("Ventas por Producto") plt.xlabel("Producto") plt.ylabel("Ventas") plt.show() ### **Conclusión** Las **agrupaciones** te permiten trabajar con datos organizados, y los **resúmenes** facilitan extraer insights significativos como sumas, promedios, o contar elementos. Con Pandas, puedes manejar esto de manera eficiente y clara.
Cuál es la diferencia entre Groupby y Pivot table en Pandas? Tanto `groupby()` como `pivot_table()` en **pandas** se usan para **agrupar y resumir datos**, pero tienen diferencias clave en su uso y flexibilidad. **1.** `groupby()`**: Agrupación y agregación flexible** `groupby()` se usa para **agrupar datos por una o más columnas** y aplicar funciones de agregación como `sum()`, `mean()`, `count()`, etc. **2.** `pivot_table()`**: Transformar datos en una tabla dinámica** `pivot_table()` permite **reorganizar los datos en una tabla más estructurada**, especificando **filas, columnas y valores**. **¿Cuándo usar cada uno?** * **Usa** `groupby()` cuando solo necesitas **agregar y resumir datos** (sumar, contar, calcular promedio, etc.). * **Usa** `pivot_table()` cuando necesitas **una vista tabular organizada**, con valores distribuidos en filas y columnas. 🔹 **Ejemplo práctico:** * Si quieres calcular **ventas totales por producto**, usa `groupby()`. * Si quieres **ver ventas organizadas por fecha y producto**, usa `pivot_table()`.
Con la funcion **agg**, podemos usar las siguientes funciones: Fu`nción`` ``Descripción` `sum`` `` ``Suma de los valores` `mean`` `` ``Promedio` `median`` ``Mediana` `min`` `` ``Mínimo` `max`` `` ``Máximo` `count`` `` ``Número de elementos` `std`` `` ``Desviación estándar` `var`` `` ``Varianza` `first`` `` ``Primer valor` `last`` `` ``Último valor` `prod`` `` ``Producto de los valores` `nunique`` ``Número de valores únicos` `mode`` `` ``Moda` `lambda x: ...`` ``Función personalizada`
Las agrupaciones y resumen de datos son técnicas fundamentales en el análisis de grandes volúmenes de información. Utilizando la función `groupby` en pandas, puedes agrupar datos y luego aplicar funciones como `sum()`, `mean()` o `count()` para obtener métricas significativas. Esto permite identificar tendencias, como cuáles productos se venden más, y facilita la toma de decisiones basadas en datos. La función `agg()` permite aplicar múltiples funciones en una sola operación, optimizando el análisis y la visualización de resultados.
undefined