Cómo crear una mesa de pivote en Pandas Python

Cómo crear una mesa de pivote en Pandas Python
En la pitón de Panda, la tabla de pivote comprende sumas, recuentos o funciones de agregaciones derivadas de una tabla de datos. Las funciones de agregación se pueden usar en diferentes características o valores. Una tabla de pivote nos permite resumir los datos de la tabla agrupados por diferentes valores, incluidos los valores categóricos de columna.

Antes de usar la tabla de pivote de Panda, asegúrese de comprender sus datos y preguntas que está tratando de resolver a través de la tabla de pivote. Al usar este método, puede producir resultados potentes. Elaboraremos en este artículo, cómo crear una mesa de pivote en Pandas Python.

Leer datos del archivo de Excel

Hemos descargado una base de datos de Excel de ventas de alimentos. Antes de comenzar la implementación, debe instalar algunos paquetes necesarios para leer y escribir los archivos de la base de datos de Excel. Escriba el siguiente comando en la sección Terminal de su editor PyCharm:

PIP install XLWT OpenPyXL XLSXWriter XLRD

Ahora, lea datos de la hoja de Excel. Importar las bibliotecas de Panda requeridas y cambiar la ruta de su base de datos. Luego, al ejecutar el siguiente código, los datos se pueden recuperar del archivo.

importar pandas como PD
importar numpy como np
DTFRM = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
Imprimir (DTFRM)

Aquí, los datos se leen de la base de datos de Food Sales Excel y se transmiten a la variable de DataFrame.

Crear mesa de pivote usando Pandas Python

A continuación hemos creado una tabla de pivote simple utilizando la base de datos de ventas de alimentos. Se requieren dos parámetros para crear una tabla de pivote. El primero son los datos que hemos pasado al marco de datos, y el otro es un índice.

Datos de pivote en un índice

El índice es la característica de una tabla de pivote que le permite agrupar sus datos en función de los requisitos. Aquí, hemos tomado 'producto' como el índice para crear una tabla de pivote básica.

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = ["producto"])
Imprimir (Pivot_tble)

El siguiente resultado muestra después de ejecutar el código fuente anterior:

Definir explícitamente columnas

Para obtener más análisis de sus datos, defina explícitamente los nombres de la columna con el índice. Por ejemplo, queremos mostrar el único precio de un producto de cada producto en el resultado. Para este propósito, agregue el parámetro de valores en su tabla de pivote. El siguiente código le da el mismo resultado:

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = 'producto', valores = 'unitprice')
Imprimir (Pivot_tble)

Datos de pivote con multiíndex

Los datos se pueden agrupar en función de más de una característica como índice. Al utilizar el enfoque multiíndexo, puede obtener resultados más específicos para el análisis de datos. Por ejemplo, los productos se encuentran en diferentes categorías. Por lo tanto, puede mostrar el índice 'Producto' y 'Categoría' con 'Cantidad' y 'Unidades de precio' disponibles de cada producto de la siguiente manera:

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = ["Categoría", "Producto"], valores = ["UnitPrice", "Cantidad"])
Imprimir (Pivot_tble)

Aplicación de la función de agregación en la tabla de pivote

En una tabla de pivote, el AGGFunc se puede aplicar para diferentes valores de características. La tabla resultante es el resumen de los datos de características. La función agregada se aplica a los datos de su grupo en PIVOT_TABLE. Por defecto, la función agregada es NP.significar(). Pero, según los requisitos del usuario, las diferentes funciones agregadas pueden aplicarse para diferentes características de datos.

Ejemplo:

Hemos aplicado funciones agregadas en este ejemplo. El NP.La función sum () se utiliza para la función 'cantidad' y np.función de la función media () para 'unitprice'.

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = ["categoría", "producto"], aggfunc = 'cantidad': np.Suma, 'Unitprice': NP.significar)
Imprimir (Pivot_tble)

Después de aplicar la función de agregación para diferentes características, obtendrá la siguiente salida:

Usando el parámetro de valor, también puede aplicar la función agregada para una característica específica. Si no especifica el valor de la función, agrega las características numéricas de su base de datos. Siguiendo el código fuente dado, puede aplicar la función agregada para una característica específica:

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = ['Product'], valores = ['unitPrice'], aggfunc = np.significar)
Imprimir (Pivot_tble)

Diferente entre valores vs. Columnas en la tabla de pivote

Los valores y columnas son el principal punto confuso en el pivot_table. Es importante tener en cuenta que las columnas son campos opcionales, que muestran los valores de la tabla resultante horizontalmente en la parte superior. La función de agregación AGGFUNC se aplica al campo Valores que enumera.

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = ['Categoría', 'Producto', 'Ciudad'], valores = ['UnitPrice', 'Cantidad'],
columnas = ['región'], aggfunc = [np.suma])
Imprimir (Pivot_tble)

Manejo de datos faltantes en la tabla de pivote

También puede manejar los valores faltantes en la tabla de pivote utilizando el 'Fill_Value' Parámetro. Esto le permite reemplazar los valores de NAN con algún valor nuevo que proporciona para llenar.

Por ejemplo, eliminamos todos los valores nulos de la tabla resultante anterior ejecutando el siguiente código y reemplaza los valores de NAN con 0 en toda la tabla resultante.

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ')
pivot_tble = PD.pivot_table (dataFrame, index = ['Categoría', 'Producto', 'Ciudad'], valores = ['UnitPrice', 'Cantidad'],
columnas = ['región'], aggfunc = [np.suma], fill_value = 0)
Imprimir (Pivot_tble)

Filtrado en la tabla de pivote

Una vez que se genera el resultado, puede aplicar el filtro utilizando la función de marco de datos estándar. Tomemos un ejemplo. Filtrar aquellos productos cuyo precio de unidades tiene menos de 60. Muestra esos productos cuyo precio es inferior a 60.

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ', index_col = 0)
pivot_tble = PD.pivot_table (dataFrame, index = 'producto', valores = 'unitprice', aggfunc = 'sum')
Low_Price = Pivot_tble [Pivot_tble ['UnitPrice'] < 60]
Imprimir (Low_Price)

Al usar otro método de consulta, puede filtrar resultados. Por ejemplo, por ejemplo, hemos filtrado la categoría de cookies en función de las siguientes características:

importar pandas como PD
importar numpy como np
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ', index_col = 0)
pivot_tble = PD.pivot_table (dataFrame, index = ["categoría", "ciudad", "región"], valores = ["unitprice", "cantidad"], aggfunc = np = np.suma)
pt = pivot_tble.consulta ('categoría == ["Cookies"]')
Imprimir (PT)

Producción:

Visualizar los datos de la tabla de pivote

Para visualizar los datos de la tabla de pivote, siga el siguiente método:

importar pandas como PD
importar numpy como np
Importar matplotlib.Pyplot como PLT
DataFrame = PD.read_excel ('c:/users/Dell/Desktop/FoodsalesData.xlsx ', index_col = 0)
pivot_tble = PD.pivot_table (dataFrame, index = ["Categoría", "Producto"], valores = ["UnitPrice"])
pivot_tble.plot (kind = 'bar');
PLT.espectáculo()

En la visualización anterior, hemos demostrado el precio unitario de los diferentes productos junto con las categorías.

Conclusión

Exploramos cómo puede generar una tabla de pivote a partir del marco de datos utilizando Pandas Python. Una tabla de pivote le permite generar información profunda en sus conjuntos de datos. Hemos visto cómo generar una tabla de pivote simple usando multiíndex y aplicar los filtros en tablas de pivote. Además, también hemos demostrado trazar los datos de la tabla de pivote y llenar los datos faltantes.