当前位置:   article > 正文

python在多个组中选一组_python-使用 pandas 在每个groupby组的列中选择最大的N

pandas分组每组保留最大的n个

我的df:

{'city1': {0: 'Chicago',

1: 'Chicago',

2: 'Chicago',

3: 'Chicago',

4: 'Miami',

5: 'Houston',

6: 'Austin'},

'city2': {0: 'Toronto',

1: 'Detroit',

2: 'St.Louis',

3: 'Miami',

4: 'Dallas',

5: 'Dallas',

6: 'Dallas'},

'p234_r_c': {0: 5.0, 1: 4.0, 2: 2.0, 3: 0.5, 4: 1.0, 5: 4.0, 6: 3.0},

'plant1_type': {0: 'COMBCYCL',

1: 'COMBCYCL',

2: 'NUKE',

3: 'COAL',

4: 'NUKE',

5: 'COMBCYCL',

6: 'COAL'},

'plant2_type': {0: 'COAL',

1: 'COAL',

2: 'COMBCYCL',

3: 'COMBCYCL',

4: 'COAL',

5: 'NUKE',

6: 'NUKE'}}

我想执行2个groupby操作,并使用列p234_r_c进行每个组中最大的1个操作.

第一分组= [‘plant1_type’,’plant2_type’,’city1′]

第二分组= [‘plant1_type’,’plant2_type’,’city2′]

因此,我将执行以下操作:

df.groupby(['plant1_type','plant2_type','city1'])['p234_r_c'].\

nlargest(1).reset_index()

plant1_type plant2_type city1 level_3 p234_r_c

0 COAL COMBCYCL Chicago 3 0.5

1 COAL NUKE Austin 6 3.0

2 COMBCYCL COAL Chicago 0 5.0

3 COMBCYCL NUKE Houston 5 4.0

4 NUKE COAL Miami 4 1.0

5 NUKE COMBCYCL Chicago 2 2.0

第一组的结果很有意义.但是,我对第二分组的结果感到困惑:

df.groupby(['plant1_type','plant2_type','city2'])['p234_r_c'].\

nlargest(1).reset_index()

index p234_r_c

0 0 5.0

1 1 4.0

2 2 2.0

3 3 0.5

4 4 1.0

5 5 4.0

6 6 3.0

结果中的列plant1_type,plant2_type和city2发生了什么?它们不应该像在第一个groupby的结果中出现plant1_type,plant2_type和city1一样出现在结果中吗?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/161922
推荐阅读
相关标签
  

闽ICP备14008679号