Я думаю, что здесь лучше всего создать словарь DataFrames путем преобразования объекта groupby в кортежи, а затем в dicts:
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'Q14':[4,3,2,2,4,5],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})
dfs = dict(tuple(df.groupby('Q14')))
print (dfs)
{2: A B C Q14 E F
2 c 4 9 2 6 a
3 d 5 4 2 9 b, 3: A B C Q14 E F
1 b 5 8 3 3 a, 4: A B C Q14 E F
0 a 4 7 4 5 a
4 e 5 2 4 2 b, 5: A B C Q14 E F
5 f 4 3 5 4 b}
И выберите с помощью клавиш:
print (dfs[2])
A B C Q14 E F
2 c 4 9 2 6 a
3 d 5 4 2 9 b
То, что вам нужно, возможно, но не рекомендуется :
for i, g in df.groupby('Q14'):
globals()['fleet_type_{}'.format(i)] = g
print (fleet_type_2 )
A B C Q14 E F
2 c 4 9 2 6 a
3 d 5 4 2 9 b