Как получить доступ к pandas groupby dataframe по ключу

Как получить доступ к соответствующему фрейму данных groupby в объекте groupby по ключу? Со следующей группой:

rand = np.random.RandomState(1)
df = pd.DataFrame({'A': ['foo', 'bar'] * 3,
                   'B': rand.randn(6),
                   'C': rand.randint(0, 20, 6)})
gb = df.groupby(['A'])

Я могу перебрать его, чтобы получить ключи и группы d:

In [11]: for k, gp in gb:
             print 'key=' + str(k)
             print gp
key=bar
     A         B   C
1  bar -0.611756  18
3  bar -1.072969  10
5  bar -2.301539  18
key=foo
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14

Я хотел бы иметь возможность сделать что-то вроде

In [12]: gb['foo']
Out[12]:  
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14

Но когда я это делаю (ну, на самом деле я должен сделатьgb[('foo',)]) Я получаю это странноpandas.core.groupby.DataFrameGroupBy вещь, которая, кажется, не имеет методов, соответствующих DataFrame, который я хочу.

Лучшее, что я могу придумать, это

In [13]: def gb_df_key(gb, key, orig_df):
             ix = gb.indices[key]
             return orig_df.ix[ix]

         gb_df_key(gb, 'foo', df)
Out[13]:
     A         B   C
0  foo  1.624345   5
2  foo -0.528172  11
4  foo  0.865408  14  

но это отчасти неприятно, учитывая, насколько хороши панды в таких вещах.
Какой встроенный способ сделать это?

Ответы на вопрос(5)

Ваш ответ на вопрос