3 回答

TA貢獻1752條經(jīng)驗 獲得超4個贊
您可以使用以下get_group方法:
In [21]: gb.get_group('foo')
Out[21]:
A B C
0 foo 1.624345 5
2 foo -0.528172 11
4 foo 0.865408 14
注意:這不需要為每個組創(chuàng)建一個中間字典/每個子數(shù)據(jù)幀的副本,因此,與使用創(chuàng)建天真的字典相比,它的內(nèi)存效率更高dict(iter(gb))。這是因為它使用了groupby對象中已經(jīng)可用的數(shù)據(jù)結(jié)構(gòu)。
您可以使用groupby切片選擇不同的列:
In [22]: gb[["A", "B"]].get_group("foo")
Out[22]:
A B
0 foo 1.624345
2 foo -0.528172
4 foo 0.865408
In [23]: gb["C"].get_group("foo")
Out[23]:
0 5
2 11
4 14
Name: C, dtype: int64

TA貢獻1852條經(jīng)驗 獲得超1個贊
Python for Data Analysis中的Wes McKinney(熊貓的作者)提供了以下方法:
groups = dict(list(gb))
它返回一個字典,其鍵是您的組標簽,其值是DataFrames,即
groups['foo']
將產(chǎn)生您想要的東西:
A B C
0 foo 1.624345 5
2 foo -0.528172 11
4 foo 0.865408 14
添加回答
舉報