2014-04-27 120 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()