访问Pandas中的Kth组

时间:2014-09-03 23:57:53

标签: python python-3.x pandas

这是唯一的方法吗?这很冗长。

k = 0
grouped = df.groupby('A')
df.ix[grouped.groups[list(grouped.groups)[k]]]

此外,list(grouped.groups)不会以无意义的顺序返回密钥吗? (无序字典)

除了群组的排序之外,是否有更简洁的方法来获得群组?我不一定需要得到Kth,尽管按照它们出现在数据帧中的顺序来获取它们会很好。

1 个答案:

答案 0 :(得分:3)

如果您知道密钥,则简洁的方法是get_group

In [11]: df = pd.DataFrame([[1, 2], [1, 4], [5, 6]], columns=['A', 'B'])

In [12]: g = df.groupby('A')

In [13]: g.get_group(1)
Out[13]:
   A  B
0  1  2
1  1  4

如上所述,组密钥不一定是有序的,您可以按级别访问它们(按原样):

In [14]: g.grouper.levels
Out[14]: [Int64Index([1, 5], dtype='int64')]

如果这只是一列,您可以使用unique按照它们出现的顺序获取它们,即不进行排序:

In [15]: df.A.unique()
Out[15]: array([1, 5])