Python 按组的索引检索组。熊猫是被分类的吗?
假设我在某个列周围分组一个数据框Python 按组的索引检索组。熊猫是被分类的吗?,python,pandas,Python,Pandas,假设我在某个列周围分组一个数据框 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],:],:] 但同样,这是非常冗长的 还有其他方法可以通过整数索引获取组吗?如
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],:],:]
但同样,这是非常冗长的
还有其他方法可以通过整数索引获取组吗?如何:
key, df2 = iter(grouped).next()
那么:
key, df2 = iter(grouped).next()
那么:
key, df2 = iter(grouped).next()
那么:
key, df2 = iter(grouped).next()
groupby
有一个sort
参数,默认情况下该参数为True
,因此组被排序。至于获取n
th组,看起来您必须定义一个函数,并使用一个内部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]
groupby
有一个sort
参数,默认情况下该参数为True
,因此组被排序。至于获取n
th组,看起来您必须定义一个函数,并使用一个内部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]
groupby
有一个sort
参数,默认情况下该参数为True
,因此组被排序。至于获取n
th组,看起来您必须定义一个函数,并使用一个内部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]
groupby
有一个sort
参数,默认情况下该参数为True
,因此组被排序。至于获取n
th组,看起来您必须定义一个函数,并使用一个内部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]
谢谢@Philip。此接口仍受支持吗?方法
\u获取\u组\u密钥
似乎不再可用。谢谢@Philip。此接口仍受支持吗?方法\u获取\u组\u密钥
似乎不再可用。谢谢@Philip。此接口仍受支持吗?方法\u获取\u组\u密钥
似乎不再可用。谢谢@Philip。此接口仍受支持吗?方法\u获取\u组\u密钥
似乎不再可用。