Bucle sobre grupos en un dataframe agrupado

Considere este pequeño ejemplo:

data={"X":[1, 2, 3, 4, 5], "Y":[6, 7, 8, 9, 10], "Z": [11, 12, 13, 14, 15]) frame=pd.DataFrame(data,columns=["X","Y","Z"],index=["A","A","A","B","B"]) 

Quiero agrupar “marco” con

 grouped=frame.groupby(frame.index) 

Ahora quiero recorrer los grupos por:

 for group in grouped: 

Pero el siguiente paso no lo administro: ¿Cómo puedo extraer el grupo en cada bucle como dataframe de pandas, y así poder procesarlo?

df.groupby devuelve una lista de 2-tuplas: el índice y el grupo. Puedes iterar sobre cada grupo de esta manera:

 for _, g in frame.groupby(frame.index): .... # do something with `g` 

Sin embargo, si desea realizar alguna operación en los grupos, probablemente haya mejores maneras que la iteración.

Aquí hay un ejemplo:

 groups = frame.groupby(level=0) for n,g in groups: print('This is group '+ str(n)+'.') print(g) print('\n') 

Salida:

 This is group A. XYZ A 1 6 11 A 2 7 12 A 3 8 13 This is group B. XYZ B 4 9 14 B 5 10 15