Comment accéder aux pandas groupby dataframe par clé

Comment puis-je accéder à la correspondante groupby dataframe dans un groupby objet par la clé? À la suite de 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'])

Je peux parcourir pour obtenir les clés et les groupes:

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

Je voudrais être en mesure de faire quelque chose comme

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

Mais quand je fais ça (bon, en fait j'ai à faire gb[('foo',)]), j'ai cette bizarre pandas.core.groupby.DataFrameGroupBy chose qui ne semble pas avoir des méthodes qui correspondent à la DataFrame je veux.

Le mieux je pense est de

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  

mais c'est le genre de méchant, compte tenu de la façon agréable les pandas est généralement à ces choses.

Ce qui est intégré dans la façon de le faire?

InformationsquelleAutor beardc | 2013-02-06