¿Cómo crear una tabla dinámica en Python usando Pandas?
Una tabla dinámica es una poderosa herramienta de análisis de datos que le permite resumir y agregar datos en función de diferentes dimensiones. En Python, puede crear tablas dinámicas utilizando la biblioteca pandas, que proporciona herramientas flexibles y eficientes para la manipulación y el análisis de datos.
Para crear una tabla dinámica en pandas, primero debe tener un conjunto de datos en un DataFrame de pandas. Puede cargar datos en un DataFrame desde varias fuentes, como archivos CSV, hojas de cálculo de Excel, bases de datos SQL y más.
Una vez que tenga sus datos en un DataFrame, puede usar la función pandas pivot_table() para crear una tabla dinámica. Aquí está su sintaxis:
dataframe.pivot(self, index=None, columns=None, values=None, aggfunc)
La función pivot_table() toma varios parámetros, incluido el DataFrame que se usará, las columnas de índice, las columnas que se usarán como columnas en la tabla dinámica y las columnas de valores que se agregarán. También puede especificar las funciones de agregación que se utilizarán, como suma, media, máximo, mínimo, etc.
Antes de profundizar en el trabajo con el pivote y la función pivot_table(), primero creemos un marco de datos que usaremos.
Un marco de datos en Pandas
Un DataFrame en pandas es una estructura de datos bidimensional etiquetada con columnas de tipos potencialmente diferentes. Es la estructura de datos principal utilizada en pandas para la manipulación y análisis de datos.
Un DataFrame puede considerarse como una hoja de cálculo o una tabla SQL, con filas y columnas. Permite un fácil manejo y manipulación de datos, incluida la indexación, selección, filtrado, fusión y agrupación.
Considere el código que se muestra a continuación. Este código crea un objeto DataFrame llamado df con cuatro columnas, "Producto", "Categoría", "Cantidad" y "Cantidad", utilizando un diccionario de Python. Cada clave del diccionario corresponde al nombre de la columna y su valor es una lista que contiene los valores de esa columna.
Ejemplo
# importing pandas library
import pandas as pd
# creating a dataframe from a dictionary
# creating a column 'Product', 'Category', 'Quantity','Amount' with its values
df = pd.DataFrame({
'Product': ['Litchi', 'Broccoli', 'Banana', 'Banana', 'Beans', 'Orange', 'Mango', 'Banana'],
'Category': ['Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Fruit'],
'Quantity': [8, 5, 3, 4, 5, 9, 11, 8],
'Amount': [270, 239, 617, 384, 626, 610, 62, 90]
})
# print the dataframe
print(df)
Producción
Cuando ejecute este código, producirá el siguiente resultado en la terminal:
Product Category Quantity Amount
0 Litchi Fruit 8 270
1 Broccoli Vegetable 5 239
2 Banana Fruit 3 617
3 Banana Fruit 4 384
4 Beans Vegetable 5 626
5 Orange Fruit 9 610
6 Mango Fruit 11 62
7 Banana Fruit 8 90
Crear una tabla dinámica usando Pandas
Ahora creemos una tabla dinámica de ventas totales usando la función pivot_table(). Considere el código que se muestra a continuación.
Ejemplo
# importing pandas library
import pandas as pd
# creating a dataframe from a dictionary
# creating a column 'Product', 'Category', 'Quantity','Amount' with its values
df = pd.DataFrame({
'Product': ['Litchi', 'Broccoli', 'Banana', 'Banana', 'Beans', 'Orange', 'Mango', 'Banana'],
'Category': ['Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Fruit'],
'Quantity': [8, 5, 3, 4, 5, 9, 11, 8],
'Amount': [270, 239, 617, 384, 626, 610, 62, 90]
})
# creating pivot table of total sales
# product-wise
pivot = df.pivot_table(index =['Product'], values =['Amount'], aggfunc ='sum')
print(pivot)
# print the dataframe
print(df)
Explicación
Crea un objeto DataFrame llamado df con cuatro columnas: 'Producto', 'Categoría', 'Cantidad' y 'Cantidad'. Cada columna tiene sus propios valores y se crean utilizando un diccionario de Python.
Después de eso, el código crea una tabla dinámica que agrupa los datos de ventas por producto y calcula las ventas totales de cada producto utilizando la función pivot_table().
Finalmente, la tabla dinámica se imprime en la consola para mostrar los datos de ventas totales de cada producto, y el DataFrame original también se imprime en la consola para mostrar los datos originales a partir de los cuales se generó la tabla dinámica.
Producción
Tras la ejecución, obtendrá el siguiente resultado en la terminal:
Product Amount
Banana 1091
Beans 626
Broccoli 239
Litchi 270
Mango 62
Orange 610
Product Category Quantity Amount
0 Litchi Fruit 8 270
1 Broccoli Vegetable 5 239
2 Banana Fruit 3 617
3 Banana Fruit 4 384
4 Beans Vegetable 5 626
5 Orange Fruit 9 610
6 Mango Fruit 11 62
7 Banana Fruit 8 90
Conclusión
En conclusión, crear tablas dinámicas en Python utilizando la biblioteca pandas es una forma poderosa de analizar datos tabulares y extraer información significativa. Al agrupar datos y calcular valores agregados, las tablas dinámicas pueden ayudarlo a identificar patrones y tendencias en sus datos que de otra manera podrían ser difíciles de ver. Con la flexibilidad y facilidad de uso que ofrecen los pandas, crear tablas dinámicas nunca ha sido tan fácil.
Si sigue los pasos descritos en este tutorial, ahora debería tener una base sólida para crear y trabajar con tablas dinámicas en Python.