Ciencia de los datos

Cómo crear una tabla dinámica en Pandas Python

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

Antes de usar la tabla dinámica de panda, asegúrese de comprender sus datos y las preguntas que está tratando de resolver a través de la tabla dinámica. Al usar este método, puede producir resultados poderosos. Desarrollaremos en este artículo, cómo crear una tabla dinámica en pandas python.

Leer datos de un archivo de Excel

Hemos descargado una base de datos excel de venta 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 de terminal de su editor de pycharm:

pip instalar xlwt openpyxl xlsxwriter xlrd

Ahora, lea los datos de la hoja de Excel. Importe las bibliotecas de panda necesarias y cambie la ruta de su base de datos. Luego, ejecutando 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 Excel de ventas de alimentos y se pasan a la variable de marco de datos.

Crear tabla dinámica usando Pandas Python

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

Datos dinámicos en un índice

El índice es la función de una tabla dinámica que le permite agrupar sus datos según los requisitos. Aquí, hemos tomado 'Producto' como índice para crear una tabla dinámica básica.

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (marco de datos, índice = ["Producto"])
imprimir (pivot_tble)

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

Definir columnas explícitamente

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

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (marco de datos, índice = 'Producto', valores = 'PrecioUnitario')
imprimir (pivot_tble)

Datos dinámicos con índice múltiple

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

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (marco de datos, índice = ["Categoría", "Producto"], valores = ["Precio unitario", "Cantidad"])
imprimir (pivot_tble)

Aplicar la función de agregación en la tabla dinámica

En una tabla dinámica, 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, se pueden aplicar diferentes funciones agregadas para diferentes características de datos.

Ejemplo:

Hemos aplicado funciones agregadas en este ejemplo. El np.La función sum () se usa para la función 'Cantidad' y np.función mean () para la función 'UnitPrice'.

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.tabla_dinámica (marco de datos, índice = ["Categoría", "Producto"], aggfunc = 'Cantidad': np.suma, 'PrecioUnitario': np.significar)
imprimir (pivot_tble)

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

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 característica, 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
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.tabla_dinámica (marco de datos, índice = ['Producto'], valores = ['PrecioUnitario'], aggfunc = np.significar)
imprimir (pivot_tble)

Diferente entre valores vs. Columnas en tabla dinámica

Los valores y las columnas son el principal punto de confusión en la tabla dinámica. 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 de valores que enumera.

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (marco de datos, índice = ['Categoría', 'Producto', 'Ciudad'], valores = ['Precio unitario', 'Cantidad'],
columnas = ['Región'], aggfunc = [np.suma])
imprimir (pivot_tble)

Manejo de datos faltantes en la tabla dinámica

También puede manejar los valores perdidos en la tabla dinámica usando el 'fill_value' Parámetro. Esto le permite reemplazar los valores de NaN con algún valor nuevo que proporciona para completar.

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

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (marco de datos, índice = ['Categoría', 'Producto', 'Ciudad'], valores = ['Precio unitario', 'Cantidad'],
columnas = ['Región'], aggfunc = [np.suma], fill_value = 0)
imprimir (pivot_tble)

Filtrado en tabla dinámica

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 UnitPrice sea inferior a 60. Muestra aquellos productos cuyo precio es inferior a 60.

importar pandas como pd
importar numpy como np
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.tabla_dinámica (marco de datos, índice = 'Producto', valores = 'Precio unitario', aggfunc = 'suma')
low_price = pivot_tble [pivot_tble ['UnitPrice'] < 60]
imprimir (precio_bajo)

Al utilizar otro método de consulta, puede filtrar los 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
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.tabla_dinámica (marco de datos, índice = ["Categoría", "Ciudad", "Región"], valores = ["Precio unitario", "Cantidad"], aggfunc = np.suma)
pt = pivot_tble.consulta ('Categoría == ["Cookies"]')
imprimir (pt)

Producción:

Visualice los datos de la tabla dinámica

Para visualizar los datos de la tabla dinámica, siga el siguiente método:

importar pandas como pd
importar numpy como np
importar matplotlib.pyplot como plt
marco de datos = pd.read_excel ('C: / Users / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.tabla_dinámica (marco de datos, índice = ["Categoría", "Producto"], valores = ["PrecioUnitario"])
pivot_tble.trama (tipo = 'barra');
plt.show()

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

Conclusión

Exploramos cómo puede generar una tabla dinámica a partir del marco de datos usando Pandas Python. Una tabla dinámica le permite generar conocimientos profundos sobre sus conjuntos de datos. Hemos visto cómo generar una tabla dinámica simple usando índices múltiples y aplicar los filtros en tablas dinámicas. Además, también hemos demostrado trazar los datos de la tabla dinámica y completar los datos faltantes.

Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...