Cree una tabla dinámica al estilo de una hoja de cálculo como un DataFrame.
Los niveles de la tabla dinámica se almacenarán en objetos MultiIndex (índices jerárquicos) en el índice y las columnas del DataFrame de resultado.
- Parámetros
-
- valores : columna para agregar, opcional
- índice : columna, Mero, array, o lista de los anteriores
-
Si una array se pasa, debe tener la misma longitud que los datos. La lista puede contener cualquiera de los otros tipos (excepto la lista). Claves para agrupar en el índice de la tabla dinámica. Si una array se pasa, se utiliza de la misma manera que los valores de columna.
- columnas : columna, Mero, array, o lista de los anteriores
-
Si una array se pasa, debe tener la misma longitud que los datos. La lista puede contener cualquiera de los otros tipos (excepto la lista). Claves para agrupar en la columna de la tabla dinámica. Si una array se pasa, se utiliza de la misma manera que los valores de columna.
- aggfunc : función, lista de funciones, dict, numpy.mean por defecto
-
Si se pasa la lista de funciones, la tabla dinámica resultante tendrá columnas jerárquicas cuyo nivel superior son los nombres de las funciones (inferidos de los propios objetos de función). key es columna para agregar y valor es función o lista de funciones.
- fill_value : escalar, predeterminado Ninguno
-
Valor con el que reemplazar los valores faltantes (en la tabla dinámica resultante, después de la agregación).
- márgenes : bool, por defecto Falso
-
Agregue todas las filas / columnas (por ejemplo, para subtotales / totales generales).
- dropna : bool, por defecto Verdadero
-
No incluya columnas cuyas entradas sean todas NaN.
- margins_name : str, predeterminado ‘Todo’
-
Nombre de la fila / columna que contendrá los totales cuando los márgenes sean Verdaderos.
- observado : bool, por defecto Falso
-
Esto solo se aplica si alguno de los meros es categórico. Si es verdadero: solo muestra los valores observados para los agrupadores categóricos. Si es falso: muestra todos los valores de los agrupadores categóricos.
Modificado en la versión 0.25.0.
- Devoluciones
-
- Marco de datos
-
Una tabla dinámica de estilo Excel.
Ver también
DataFrame.pivot
-
Pivote sin agregación que pueda manejar datos no numéricos.
DataFrame.melt
-
Desactive un DataFrame de formato ancho a largo, dejando los identificadores configurados opcionalmente.
wide_to_long
-
Panel ancho a formato largo. Menos flexible pero más fácil de usar que el derretimiento.
Ejemplos de
>>> df = pd.DataFrame("A":["foo","foo","foo","foo","foo",..."bar","bar","bar","bar"],..."B":["one","one","one","two","two",..."one","one","two","two"],..."C":["small","large","large","small",..."small","large","small","small",..."large"],..."D":[1,2,2,3,3,4,5,6,7],..."E":[2,4,5,5,6,6,8,9,9])>>> df
A B C D E
0 foo one small 121 foo one large 242 foo one large 253 foo two small 354 foo two small 365 bar one large 466 bar one small 587 bar two small 698 bar two large 79
Este primer ejemplo agrega valores tomando la suma.
>>> table = pd.pivot_table(df, values='D', index=['A','B'],... columns=['C'], aggfunc=np.sum)>>> table
C large small
A B
bar one 4.05.0
two 7.06.0
foo one 4.01.0
two NaN 6.0
También podemos completar los valores perdidos usando el fill_value parámetro.
>>> table = pd.pivot_table(df, values='D', index=['A','B'],... columns=['C'], aggfunc=np.sum, fill_value=0)>>> table
C large small
A B
bar one 45
two 76
foo one 41
two 06
El siguiente ejemplo se suma tomando la media en varias columnas.
>>> table = pd.pivot_table(df, values=['D','E'], index=['A','C'],... aggfunc='D': np.mean,...'E': np.mean)>>> table
D E
A C
bar large 5.5000007.500000
small 5.5000008.500000
foo large 2.0000004.500000
small 2.3333334.333333
También podemos calcular varios tipos de agregaciones para cualquier columna de valor dada.
>>> table = pd.pivot_table(df, values=['D','E'], index=['A','C'],... aggfunc='D': np.mean,...'E':[min,max, np.mean])>>> table
D E
mean max mean min
A C
bar large 5.5000009.07.5000006.0
small 5.5000009.08.5000008.0
foo large 2.0000005.04.5000004.0
small 2.3333336.04.3333332.0