将表中前2列的最大值分组

2024-09-30 12:11:18 发布

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

我试图将我的数据集分为总体评价最高的几年。但当我尝试使用groupbynlargest时,它只返回一年并检查总得分

例如:

style | year | review_score
a     | 1990 | 4.0
b     | 1990 | 5.0
c     | 1990 | 4.2

我的输出应该是

style | year | review_score
b     | 1990 | 5.0
c     | 1990 | 4.2

我尝试了以下方法:

v=style.groupby(by='review_year')['beer_style']['review_overall'].nlargest(3)

请帮帮我


Tags: 数据方法bystyleyearreview评价score
1条回答
网友
1楼 · 发布于 2024-09-30 12:11:18

我认为需要^{}的所有列需要首先保留:

v = style.set_index('style').groupby(by='year')['review_score'].nlargest(2).reset_index()
print (v)
   year style  review_score
0  1990     b           5.0
1  1990     c           4.2

另一种方法是首先用^{}和调用^{}对两列进行排序:

v = (style.sort_values(['year','review_score'], ascending=(True, False))
          .groupby(by='year').head(2))
print (v)
  style  year  review_score
1     b  1990           5.0
2     c  1990           4.2

相关问题 更多 >

    热门问题