pandas groupby rank删除索引,返回全1

问题描述 投票:0回答:1

我的数据框看起来像这样:

    name1  name2   value
 1  Jane   Foo     2
 2  Jane   Bar     4
 3  John   Foo     7
 4  John   Bar     1

如果我df.groupby(['name1', 'name2']).count(),我得到:

              value
name1  name2
Jane   Foo    1
Jane   Bar    1
John   Foo    1
John   Bar    1

但是我试图找到每个多索引组中每个值的排名。理想情况下,如果使用df.groupby(['name1', 'name2']).rank(),我应该得到:

             value
name1  name2
Jane   Foo    2
Jane   Bar    1
John   Foo    1
John   Bar    2

但是我只是得到:

    value
  1  1
  2  1
  3  1
  4  1

除去分组列的名称,仅将索引号作为索引,并且所有行的等级值等于1。我在做什么错?

python pandas
1个回答
0
投票

['name1','name2']仅观察到一个要获得输出,您正在寻找仅按name1分组的组>

df.groupby(['name1']).rank()
© www.soinside.com 2019 - 2024. All rights reserved.