Я полагаю, что вам нужно;
Любой групповой на первом уровне и idxmax
с 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
с макс и затем оператором равенства для компиляции и выбора строк
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