¿Cómo puedo filtrar un objeto Pandas GroupBy y obtener un objeto GroupBy de nuevo?

Al realizar un filtro en el resultado de una operación grupal de Pandas, devuelve un dataframe. Pero suponiendo que quiero realizar más cálculos grupales, tengo que volver a llamar a groupby, lo que parece una especie de ronda. ¿Hay una forma más idiomática de hacer esto?

EDITAR:

Para ilustrar de lo que estoy hablando:

Robamos sin vergüenza un dataframe de juguetes de los documentos de Pandas, y agrupamos:

>>> dff = pd.DataFrame({'A': np.arange(8), 'B': list('aabbbbcc')}) >>> grouped = dff.groupby('B') >>> type(grouped)  

Esto devuelve un objeto groupby sobre el cual podemos iterar, realizar operaciones de grupo, etc. Pero si filtramos:

 >>> filtered = grouped.filter(lambda x: len(x) > 2) >>> type(filtered)  

Recuperamos un dataframe. ¿Existe una buena forma idiomática de recuperar los grupos filtrados, en lugar de solo las filas originales que pertenecían a los grupos filtrados?

Si desea combinar un filtro y un agregado, la mejor manera que se me ocurra sería combinar su filtro y agregado usando un ternario if apply dentro, devolviendo None a los grupos filtrados, y luego dropna para eliminar estas filas del resultado final :

 grouped.apply(lambda x: x.sum() if len(x) > 2 else None).dropna() 

Si desea recorrer los grupos, diga que para volver a unirse a ellos, puede usar un generador de comprensión.

 pd.concat(g for i,g in grouped if len(g)>2) 

En última instancia, creo que sería mejor si groupby.filter tuviera la opción de devolver un objeto groupby.