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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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 pdimportar 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.