найти значение, соответствующее дате в пандах

1

В следующем фрейме данных я хотел бы найти определенное значение столбца, соответствующего дате. Скажем, мне нужна температура воздуха в день 2005-12-22:

date    AIR_TEMP    ATM_PRESS   REL_HUM WIND_DIR    WIND_SPEED
2005-12-16  10.1    102935.4912 0.81    231.8   3.5
2005-12-17  9.75    103355.1512 0.72    273.5   3.3
2005-12-18  9.77    103522.4912 0.64    291.6   1.2
2005-12-19  10.74   103098.1512 0.77    234.5   3
2005-12-20  10.99   102807.8212 0.85    253.7   3.1
2005-12-21  11.11   102622.4912 0.74    263.5   2.6
2005-12-22  11.00   102863.4912 0.77    269.3   1.2
2005-12-23  10.91   103232.8212 0.79    277.0   3
2005-12-24  10.66   103420.8212 0.67    328.8   2.4

так что air_temp = 11.00 будет результатом.

Каким был бы "пандасический" способ сделать это? заранее спасибо

Теги:
pandas
datetime

3 ответа

3

Используйте df.loc:

df.loc[df["date"] == "2005-12-22", "AIR_TEMP"]
  • 0
    Это прекрасно работает! Спасибо @Kopytok :)
2
print(df[df['date'] == '2005-12-22']['AIR_TEMP'])
  • 1
    использование df.loc[<condition>, 'column_name'] - более идиоматическое решение
1

Если "дата" указана в индексе, вы можете использовать индексирование частичной строки в индексе datetime с помощью loc.

df.loc['2005-12-22','AIR_TEMP']

Выход:

11,0

Где df:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 9 entries, 2005-12-16 to 2005-12-24
Data columns (total 5 columns):
AIR_TEMP      9 non-null float64
ATM_PRESS     9 non-null float64
REL_HUM       9 non-null float64
WIND_DIR      9 non-null float64
WIND_SPEED    9 non-null float64
dtypes: float64(5)
memory usage: 752.0 bytes

Ещё вопросы

Сообщество Overcoder
Наверх
Меню