Contenido de este artículo
- 0
- 0
- 0
- 0
Una tabla dinámica es un tipo de tabla que resume un conjunto de datos utilizando estadísticas de resumen.
Podemos crear tablas dinámicas en Python usando la función pivot_table del paquete pandas, que usa la siguiente sintaxis:
pivot_table (datos, índice = Ninguno, valores = Ninguno, aggfunc = ‘mean’, fill_value = Ninguno,…)
dónde:
- data: nombre de DataFrame
- índice: columnas de DataFrame para agrupar
- valores: columnas de DataFrame para agregar
- aggfunc: función agregada a utilizar. El valor predeterminado es malo.
- fill_value: valor con el que reemplazar los valores perdidos.
Ejemplo: tablas dinámicas en Python
Supongamos que tenemos el siguiente conjunto de datos que contiene información sobre ocho jugadores de baloncesto:
importar pandas como pd datos = {'equipo': ['E', 'E', 'C', 'C', 'C', 'W', 'W', 'W'], 'jugador': ['Andy', 'Ben', 'Chris', 'Dwight', 'Elias', 'Frank', 'Greg', 'Hank'], 'rebotes': [12, 14, 13, 7, 8, 8, 9, 13], 'puntos': [22, 24, 26, 26, 29, 32, 20, 14] } df = pd.DataFrame (datos, columnas = ['equipo', 'jugador', 'rebotes', 'puntos']) df jugador de equipo rebota puntos 0 E Andy 12 22 1 E Ben 14 24 2 C Chris 13 26 3 C Dwight 7 26 4 C Elías 8 29 5 W Frank 8 32 6 W Greg 9 20 7 W Hank 13 14
Para encontrar el número medio de puntos y rebotes anotados por los jugadores de cada equipo, podemos usar la siguiente sintaxis:
pd.pivot_table (df, index = [' equipo ']) puntos rebotes equipo C 27 9.333333 E 23 13.000000 W 22 10.000000
Para encontrar solo el número medio de puntos anotados por los jugadores de cada equipo, podemos usar la siguiente sintaxis:
pd.pivot_table (df, index = [' equipo '], valores = [' puntos ']) puntos equipo C 27 E 23 W 22
Para encontrar el número total de puntos anotados por los jugadores de cada equipo, podemos usar la siguiente sintaxis:
pd.pivot_table (df, index = [' equipo '], valores = [' puntos '], aggfunc = ' suma ') puntos equipo C 81 E 46 W 66
Para encontrar el número máximo de puntos anotados por los jugadores de cada equipo, podemos usar la siguiente sintaxis:
pd.pivot_table (df, index = [' equipo '], valores = [' puntos '], aggfunc = ' max ') puntos equipo C 29 E 34 W 32
Para encontrar el número total de jugadores individuales en cada equipo, podemos usar la siguiente sintaxis:
pd.pivot_table (df, index = [' equipo '], valores = [' jugador '], aggfunc = ' count ') jugador equipo C 3 E 2 W 3
Lidiar con los valores perdidos
Suponga que tiene valores faltantes en su conjunto de datos:
importar pandas como pd importar numpy como np datos = {'equipo': ['E', 'E', 'C', 'C', 'C', 'W', 'W', 'W'], 'jugador': ['Andy', 'Ben', 'Chris', 'Dwight', 'Elias', 'Frank', 'Greg', 'Hank'], 'rebotes': [12, 14, np.NaN, 7, 8, np.NaN, 9, 13], 'puntos': [22, 24, 26, 26, 29, 32, np.NaN, 14] } df = pd.DataFrame (datos, columnas = ['equipo', 'jugador', 'rebotes', 'puntos']) df jugador de equipo rebota puntos 0 E Andy 12,0 22,0 1 E Ben 14.0 24.0 2 C Chris NaN 26.0 3 C Dwight 7.0 26.0 4 C Elías 8.0 29.0 5 W Frank NaN 32.0 6 W Greg 9,0 NaN 7 W Hank 13.0 14.0
Para calcular las estadísticas de resumen, puede utilizar numerosas funciones que ignoran automáticamente los valores perdidos. Por ejemplo, a continuación se explica cómo calcular el número medio de puntos anotados por los jugadores de cada equipo:
pd.pivot_table (df, index = [' equipo '], valores = [' puntos '], aggfunc = [np.mean]) significar puntos equipo C 27,0 E 23.0 W 23.0
Filtrado de tablas dinámicas
Una vez que haya creado una tabla dinámica, puede filtrarla.
Por ejemplo, supongamos que solo queremos ver las estadísticas medias de los jugadores que están en el equipo W:
pivotTable = pd.pivot_table (df, index = [' equipo ']) pivotTable.query ('equipo == ["W"]') puntos rebotes equipo W 23,0 11,0
O supongamos que solo queremos ver las estadísticas medias de los jugadores de los equipos E o W:
pivotTable.query ('equipo == ["E", "W"]') puntos rebotes equipo E 23,0 13,0 W 23,0 11,0
Puede encontrar la documentación completa para la función pivot_table aquí .
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: