Obtenga estadísticas para cada grupo (como recuento, media, etc.) usando Pandas GroupBy? {DH}
Respuesta rápida:
La forma más sencilla de obtener el número de filas por grupo es llamar .size()
quien a. devoluciones Series
:
df.groupby(['col1','col2']).size()
Por lo general, desea este resultado como DataFrame
(en lugar de un Series
) para que pueda hacer lo siguiente:
df.groupby(['col1', 'col2']).size().reset_index(name="counts")
Si desea saber cómo calcular los recuentos de filas y otras estadísticas para cada grupo, lea a continuación.
Ejemplo detallado:
Considere el siguiente marco de datos de muestra:
In [2]: df
Out[2]:
col1 col2 col3 col4 col5 col6
0 A B 0.20 -0.61 -0.49 1.49
1 A B -1.53 -1.01 -0.39 1.82
2 A B -0.44 0.27 0.72 0.11
3 A B 0.28 -1.32 0.38 0.18
4 C D 0.12 0.59 0.81 0.66
5 C D -0.13 -1.65 -1.64 0.50
6 C D -1.42 -0.11 -0.18 -0.44
7 E F -0.00 1.42 -0.26 1.17
8 E F 0.91 -0.47 1.35 -0.34
9 G H 1.48 -0.63 -1.14 0.17
Primero usamos .size()
para obtener el número de líneas:
In [3]: df.groupby(['col1', 'col2']).size()
Out[3]:
col1 col2
A B 4
C D 3
E F ...
leer mas:
Obtenga estadísticas para cada grupo (como recuento, media, etc.) usando Pandas GroupBy? {DH}