Skip to main content
 首页 » 编程设计

python之获取组的 n 个最大值

2025年05月04日22telwanggs

<分区>

我希望为以下数据隔离每组的前 2 个值。

Brand | Product | Rank 
  A   |    P1   |   1000 
      |    P2   |   1210 
      |    P3   |   2000 
      |    P4   |   600 
      |    P5   |   756 
      |    P6   |   867 
  B   |    P1   |   549 
      |    P2   |   1572 
      |    P3   |   3490 
      |    P4   |   2341 
      |    P5   |   431 
      |    P6   |   321 
  C   |    P1   |   421 
      |    P2   |   121 
      |    P3   |   805 
      |    P4   |   1202 
      |    P5   |   4032 
      |    P6   |   432 

我希望能够获得每个组(A、B、C)的前 2 个值。

Top_Products = df.nlargest(2, 'Rank') 

然而,这仅隔离了前 2 个产品。

有没有办法获得每个品牌的前 2 名产品。

期望的输出:

Brand | Product | Rank 
  A   |    P3   |   2000 
      |    P2   |   1210 
  B   |    P3   |   3490 
      |    P4   |   2341 
  C   |    P5   |   4032 
      |    P4   |   1202 

谢谢!