2014-04-27 71 views
0

說我組周圍的一些列按索引檢索組。熊貓羣體是否分類?

df.groupby(cols) 

是一組數據幀大熊貓根據任何標準排序?檢索一組

一種方法是:

ix = 0 
grouped.get_group(grouped.groups.keys()[ix]) 

,但它是一個有點冗長,而且目前尚不清楚,keys()上面會給組順序。

另一種方式:

df = df.set_index(col) 
df.loc[idx[df.index.levels[0][0],:],:] 

但同樣,這是非常囉嗦。

是否有另一種通過其整數索引獲取組的方法?

回答

2

groupbysort參數是True默認情況下,這樣的組進行排序。至於獲得第012組,看起來你必須定義一個函數,並使用內部API:

In [123]: df = DataFrame({'a': [1,1,1,1,2,2,3,3,3,3], 'b': randn(10)}) 

In [124]: df 
Out[124]: 
    a  b 
0 1 1.5665 
1 1 -0.2558 
2 1 0.0756 
3 1 -0.2821 
4 2 0.8670 
5 2 -2.0043 
6 3 -1.3393 
7 3 0.3898 
8 3 -0.3392 
9 3 1.2198 

[10 rows x 2 columns] 

In [125]: gb = df.groupby('a') 

In [126]: def nth_group(gb, n): 
    .....:  keys = gb.grouper._get_group_keys() 
    .....:  return gb.get_group(keys[n]) 
    .....: 

In [127]: nth_group(gb, 0) 
Out[127]: 
    a  b 
0 1 1.5665 
1 1 -0.2558 
2 1 0.0756 
3 1 -0.2821 

[4 rows x 2 columns] 
+0

謝謝@Philip。這個界面是否仍然支持? '_get_group_keys'方法似乎不再可用。 –

1

如何:

key, df2 = iter(grouped).next()