获取具有最大特定值的整行熊猫

时间:2020-04-08 14:48:04

标签: python database 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

谢谢你,对不起我的英语

2 个答案:

答案 0 :(得分:3)

我相信您需要

第一层的groupby和idxmax的{​​{1}}

df.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

答案 1 :(得分:0)

使用.max()获取列的最大值,并将其放入df.loc []请求的内部,以获取具有该值的所有行。像这样:

data want;
  set have;
  do row=1 to countw(x,'0D0A'x);
    line=scan(x,row,'0D0A'x);
    output;
  end;
run;