usar tablas sumar recorrer promedio para notebook leer hacer funciones datos data como columnas python pandas dataframe group-by grouping

python - tablas - recorrer data frame pandas



¿Cómo obtener el número de grupos en un grupo por objeto en pandas? (2)

Esto sería útil, así que sé cuántos grupos únicos tengo para realizar cálculos. Gracias.

Supongamos que el objeto groupby se llama dfgroup .


Como se documented , puede obtener el número de grupos con len(dfgroup) .


Preparar

df A B C D 0 foo one 0.075964 2.132502 1 bar one -1.061731 0.025212 2 foo two 0.753592 0.031765 3 bar three 0.379773 0.996792 4 foo two 0.297801 1.059324 5 bar two -1.400107 -0.651873 6 foo one -1.084224 0.243731 7 foo three -3.181693 -0.413512 g = df.groupby([''A'', ''B''])

Solución

A partir de v0.23, hay dos métodos.

ngroups

Las versiones más recientes de la API groupby proporcionan este atributo (no documentado) que almacena el número de grupos en un objeto GroupBy.

g.ngroups 6

len

Delegados a GroupBy.__len__ para recuperar el número de grupos.

len(g) 6

Apéndice

Si está buscando encontrar el tamaño de cada grupo, puede usar dfGroupBy.size :

g.size() A B bar one 1 three 1 two 1 foo one 2 three 1 two 2 dtype: int64

Tenga en cuenta que el size cuenta con NaN. Si no desea que se cuenten los NaN, use g.count() lugar.

Y por último, también está la opción de value_counts través de df.groupby(''A'').B.value_counts() que da el mismo resultado exacto que g.count() pero hace el agrupamiento en una columna en lugar de dos.