¿Cómo crear una tabla dinámica en Python desde cero?

Estás leyendo la publicación: ¿Cómo crear una tabla dinámica en Python desde cero?

Una tabla dinámica es una herramienta exquisita para calcular, examinar y resumir una gran cantidad de datos mediante el método de funciones de agregación. Estas funciones de agregación incluyen suma, promedio, conteo y estadísticas. Ayuda a encapsular una o más variables numéricas basadas en variables categóricas. Las tablas dinámicas son herramientas populares de análisis de datos porque son la mejor manera de resumir datos y tienen un alto nivel de comprensión de los datos, lo que ayuda a desglosar aún más las soluciones. Para aprender cómo se puede implementar de manera práctica, tomaremos datos aleatorios y realizaremos las pruebas con python y así intentaremos aprender este concepto desde cero. Los puntos principales que se tratarán en este artículo se enumeran a continuación.

Tabla de contenido

  1. Introducción a pandas.pivot_table()
  2. Crear una tabla dinámica
  3. Uso de múltiples funciones de agregación
  4. Agregar para múltiples características y características específicas
  5. Calcular el total de filas y columnas
  6. Tabla dinámica de índice de varios niveles
  7. Diferencia entre tabla dinámica y grupo por

Introducción a pandastabla dinámica()

Para crear una tabla dinámica al estilo de una hoja de cálculo como marco de datos en python, usamos la función pandas.pivot_table().

Sintaxis

pandas.pivot_table(datos, valores=Ninguno, índice=Ninguno, columnas=Ninguno, aggfunc=”media”, fill_value=Ninguno, márgenes=Falso, dropna=Verdadero, márgenes_nombre=”Todos”, observados=Falso, ordenar=Verdadero)

Parámetros

datos: marco de datos (definiendo el conjunto de datos que se utilizará para la tabla dinámica).

valores: columna a agregar (Característica que se va a ver en su resumen estadístico.)

índice: columna (indexa el valor pasado en el argumento de valor)

columnas: columna (Para agregar valores basados ​​en ciertas características)

función agregada: función o lista de funciones (funciones de agregación como suma, media, etc.)

valor_de_relleno: escalar (Valor para reemplazar los valores faltantes en la tabla)

márgenes: bool (Agregue todas las filas/columnas (p. ej., para subtotales/totales generales))

Devoluciones

Marco de datos en tabla dinámica de estilo Excel.

Crear una tabla dinámica

Al especificar los parámetros de índice y columnas en la función pd.pivot_table(), puede determinar qué características deben aparecer en las columnas y filas. En el parámetro de valores, debe especificar qué función se debe usar para completar los valores de celda.

🔥 Recomendado:  Cómo hacer crecer su negocio local en 2022

Importar bibliotecas para usar

importar pandas como pd importar numpy como np

Creación de un conjunto de datos de muestra

df = pd.DataFrame({‘Nombre’: [‘Minecraft’, ‘Grand Theft Auto V’, ‘Tetris (EA)’, ‘Wii Sports’, ‘PUBG: Battlegrounds’, ]’Género’: [‘Survival,Sandbox’, ‘Action-adventure’, ‘Puzzle’, ‘Sports simulation’, ‘Battle royale’]’Plataforma’: [‘Multi-platform’, ‘Multi-platform’, ‘Multi-platform’,
‘Wii’, ‘PC’]’Editores’: [‘Xbox Game Studios’, ‘Rockstar Games’, ‘Electronic Arts’,
‘Nintendo’, ‘PUBG Corporation’]’Total_año’: [9, 7, 14, 10, 5]’Ventas’: [238, 160, 100, 82, 75]}) d.f.

Este marco de datos informa sobre los 5 videojuegos más vendidos hasta la fecha en todo el mundo. Las ventas están en millones de dólares.

Crear tabla dinámica usando pandas

tabla = pd.pivot_table( data=df, index=[‘Platform’]columnas=[‘Publishers’]valores=”Ventas”, aggfunc=”media”) tabla

Especificar los datos como el nombre del marco de datos creado ‘df’, indexar como ‘plataforma’ debido a la necesidad de ver las ventas según diferentes plataformas y valor como ‘ventas’ y aggfunc como ‘media’ para ver las ventas promedio en diferentes plataformas

Aquí hemos creado una tabla dinámica que muestra las ventas promedio en diferentes plataformas. Habría valores de Nan, así que no se preocupe, veremos más adelante en el artículo cómo manejar los valores faltantes.

Uso de múltiples funciones de agregación

Si no se especifica el parámetro de columna, se agregará según el índice. Entonces, no especifiquemos el parámetro de columna y veamos qué cambios ocurren en nuestra tabla dinámica.

tabla = pd.pivot_table(datos=df, índice=[‘Platform’]valores=”Ventas”, aggfunc=[‘sum’, ‘mean’, ‘count’]) mesa

Aquí podemos observar que no se especifica el parámetro de columna y se pasa una lista de diferentes funciones de agregación en el parámetro aggfunc.

Como se discutió anteriormente, si no se especifica el parámetro de columna, la función en sí se agrega en el parámetro de índice.

Agregar para múltiples características y características específicas

Además, podemos realizar diferentes agregaciones basadas en diferentes características. El resultado es que no es necesario crear varias tablas dinámicas para aplicar las operaciones adecuadas a diferentes funciones.

🔥 Recomendado:  ¿Cómo realizar el reconocimiento de entidad nombrada (NER) usando un transformador?

tabla = pd.pivot_table(data=df, index=’Plataforma’, valores=[‘Sales’, ‘Total_Year’]columnas=[‘Publishers’]aggfunc={‘Sales’: np.sum, ‘Total_Year’: np.mean}) tabla

Podemos especificar una agregación diferente en características específicas o la misma función de agregación en diferentes características múltiples de la forma que desee su salida.

En el lado izquierdo de la columna ‘ventas’ se aplica np.sum que devolverá la suma agregada de los datos y en el lado derecho de la columna ‘Total_year’ se aplica np.mean que devolverá el promedio de la función especificada en el parámetro de valor.

Reemplazo de valores faltantes

En el marco de datos, hay muchos valores faltantes que se pueden manejar al completarlos especificando el valor en el parámetro fill_value.

tabla = pd.pivot_table(data=df, index=’Plataforma’, valores=[‘Sales’, ‘Total_Year’]columnas=[‘Publishers’]aggfunc={‘Sales’: np.sum, ‘Total_Year’: np.mean}, fill_value=”N/A”) tabla

Por lo tanto, todos los valores que faltan se completan con ‘N/A’ como se especifica en el parámetro fill_value.

Calcular el total de filas y columnas

A continuación, examinemos los totales de ventas de cada categoría de la plataforma. Para ello, utilizaremos los parámetros margins y margins_name.

tabla = pd.pivot_table(datos=df, índice=[‘Platform’]valores=”Ventas”, aggfunc=[‘sum’, ‘mean’, ‘count’]margins=True, tabla margins_name=”Gran Total”)

Podemos observar en esa salida que se agrega un nuevo índice como un total que contiene las ventas totales para diferentes funciones de agregación aplicadas en la columna de ventas.

Tabla dinámica de índice de varios niveles

Según las tablas dinámicas anteriores, solo se utilizó una característica en el índice, es decir, un índice de un solo nivel. Sin embargo, podemos crear tablas dinámicas usando múltiples índices. Siempre que los datos se organicen jerárquicamente, una tabla dinámica con índices de varios niveles puede proporcionar información resumida muy útil y detallada.

tabla = pd.pivot_table(datos=df, índice=[‘Platform’, ‘Genre’]valores=”Ventas”, aggfunc=[‘sum’, ‘mean’, ‘count’]margins=True, tabla margins_name=”Gran Total”)

Con respecto a la salida, hay dos índices (índice de niveles múltiples) que explican que en la plataforma múltiple hay tres géneros y la suma de sus ventas, media y recuento son los siguientes. El orden en que se pasan los índices es importante y la salida variará en consecuencia.

🔥 Recomendado:  Cómo empezar a invertir en Bitcoin como principiante

Diferencia entre .pivot_table() y .groupby()

La principal diferencia entre pandas.pivot_table() y pandas.dataFrame.groupby()

es la resultante en la tabla dinámica, la resultante está en forma de marco de datos, mientras que en el grupo por resultante está en dataframe.groupby. La diferencia en la salida se muestra a continuación:

Así es como se codifica una tabla dinámica en Python

capaz = pd.pivot_table( data=df, index=[‘Platform’]columnas=[‘Publishers’]valores=”Ventas”, aggfunc=”media”) tabla

Así se hace un groupby en python

grupo= df.groupby(‘Plataforma’)

Ahora veamos la salida resultante.

La salida de la tabla dinámica se puede imprimir simplemente llamando al nombre del marco de datos en el que está almacenado y el tipo de datos es DataFrame.

La salida para groupby se puede imprimir usando la función .get_group(‘nombre del grupo’). Solo imprime el grupo por el cual se formaron.

Conclusión

Con la ayuda de este artículo, hemos aprendido acerca de las tablas dinámicas y cómo crear una tabla dinámica al estilo de una hoja de cálculo en python mediante el uso de pandas. También podríamos entender cómo usar los parámetros de la función de tabla dinámica para obtener el resultado deseado. Junto con estos, también hemos aprendido la diferencia principal entre una tabla dinámica y groupby y dónde usarlas.

Referencias

  1. Enlace para el código anterior
  2. Documentación de la tabla dinámica de Pandas
  3. Grupo de pandas por documentación