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: