2017-02-02 6 views
1

У меня есть pandas DataFrame, и я ищу значение min в нем.Pandas dataframe loc

print(df.loc[df['Price'].idxmin()]) 

Это работает, и я могу напечатать всю «линию», это результат:

Country    Switzerland 
City      Zurich 
Airport     Zurich 
Carrier   Vueling Airlines 
Type      Direct 
Date   2017-09-05T00:00:00 
Price      12360 
AirportId     ZRH 
Name: 97, dtype: object 

Process finished with exit code 0 

Как я могу напечатать, например, только AirportId колонку?

Спасибо!

ответ

2

Отфильтровывая против него:

print(df.loc[df['Price'].idxmin()]['Airport']) 

Если вы собираетесь записывать данные в эту ячейку, продолжайте использовать loc:

df.loc[df['Price'].idxmin(),'Airport'] 
+0

технически прикованная индексация, 'печать (df.loc [ДФ [ 'Цена']. Idxmin(), 'Аэропорт'])' будет лучше IMO +1 все же – EdChum

+0

Вы потрясающе! :) Спасибо! – solarenqu

+0

@EdChum достаточно, чтобы получить более явное изменение для случая R/W. отредактировал, спасибо! – Boud

0

допустим это ваш кадр данных:

your_df = pd.DataFrame(data={'Airport':['x','y','z'], 'type': ['A','B','C'], 
     'price':[5450, 5450, 15998]}) 

вы можете получить доступ к первой колонке следующим образом:

print your_df.loc[your_df['price'].idxmin()].values[0] 
+0

Спасибо вам большое! – solarenqu

Смежные вопросы