Распакуйте кортежи для 2 переменных - например, добавьте i
для имени группы и group
для DataFrame
:
print (df.index)
MultiIndex(levels=[['A', 'B'], ['F1', 'F2'], ['2019-03-06', '2019-04-04', '2019-05-07']],
codes=[[0, 0, 0, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2, 0, 1, 2]],
names=['gop', 'Family', 'date'])
df_grouped = df.sort_values(['date']).groupby(['gop', 'Family'])
for i, group in df_grouped:
print (i)
print (group)
('A', 'F1')
Amount
gop Family date
A F1 2019-03-06 0.0
2019-04-04 0.0
2019-05-07 0.0
('B', 'F1')
Amount
gop Family date
B F1 2019-03-06 -0.02
2019-04-04 -25.02
2019-05-07 -7.02
('B', 'F2')
Amount
gop Family date
B F2 2019-03-06 -40.68
2019-04-04 2.76
2019-05-07 3525.57
Также возможна распаковка снова кортежей, созданных столбцами в groupby
:
for (a,b), group in df_grouped:
print (a)
print (b)
print (group)
A
F1
Amount
gop Family date
A F1 2019-03-06 0.0
2019-04-04 0.0
2019-05-07 0.0
B
F1
Amount
gop Family date
B F1 2019-03-06 -0.02
2019-04-04 -25.02
2019-05-07 -7.02
B
F2
Amount
gop Family date
B F2 2019-03-06 -40.68
2019-04-04 2.76
2019-05-07 3525.57