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