首页 > 解决方案 > 获取具有最大特定值的整行,Pandas

问题描述

neighbourhood      room_type           value
Agios Loukas       Entire home/apt      69
                   Private room         11
                   Shared room           1
Agios Nikolaos     Entire home/apt     193
                   Private room         33
Akadimia Platonos  Entire home/apt      45
                   Private room         10
                   Shared room           1 

以最大值取整行的最佳方法是什么。例如我想采取

Agios Loukas       Entire home/apt      69 
Agios Nikolaos     Entire home/apt     193
Akadimia Platonos  Entire home/apt      45

谢谢你,对不起我的英语

标签: pythondatabasepandas

解决方案


我相信你需要;

第一级的 groupbyidxmaxdf.loc[]

out = df.loc[df.groupby(level=0)['value'].idxmax()]
print(out)

                                   value
neighbourhood     room_type             
Agios Loukas      Entire home/apt     69
Agios Nikolaos    Entire home/apt    193
Akadimia Platonos Entire home/apt     45

或者:

groupby+transform使用 max 然后等于运算符来比较和选择行

out1 = df[df['value'].eq(df.groupby('neighbourhood')['value'].transform('max'))]
print(out1)

                                   value
neighbourhood     room_type             
Agios Loukas      Entire home/apt     69
Agios Nikolaos    Entire home/apt    193
Akadimia Platonos Entire home/apt     45

推荐阅读