Борясь с новичком, мы пытаемся перечислить элементы сгруппированного информационного кадра.
Чтобы выделить проблему, см. Упрощенный пример ниже.
Сначала сгруппируйте предметы:
data = {'colour': ['red','purple','green','purple','blue','red'], 'item': ['hat','scarf','belt','belt','hat','scarf'], 'material': ['felt','wool','leather','wool','plastic','wool']}
df = pd.DataFrame(data=data)
grpd_df = df.groupby(df['item']).apply(lambda df:df.reset_index(drop=True))
grpd_df
colour item material
item
belt 0 green belt leather
1 purple belt wool
hat 0 red hat felt
1 blue hat plastic
scarf 0 purple scarf wool
1 red scarf wool
Затем найдите все строки с красным элементом
df = grpd_df[grpd_df['colour'].eq('red').groupby(level=0).transform('any')]
print (df)
colour item material
item
hat 0 red hat felt
1 blue hat plastic
scarf 0 purple scarf wool
1 red scarf wool
Затем мы хотели бы перебрать список предметов в шапке и шарфе grpd_df. Мы попробовали df.index.levels
, но при этом выводятся все элементы, включая ремень.