访问Pandas中的第k组

2024-04-25 20:33:14 发布

您现在位置:Python中文网/ 问答频道 /正文

这是唯一的办法吗?很冗长

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

另外,list(grouped.groups)是否会以无意义的顺序返回键(无序字典)

除了分组排序之外,还有没有更合理的方法来获得分组?我不一定需要得到第k个,尽管最好按照它们在数据帧中出现的顺序得到它们


Tags: 数据方法df字典排序顺序list意义
1条回答
网友
1楼 · 发布于 2024-04-25 20:33:14

如果你知道关键,简洁的方法是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])

相关问题 更多 >