Как выбрать конкретное время в кадре данных - PullRequest
0 голосов
/ 03 января 2019

Я хочу выбрать диапазон времени из моих данных, но я не могу найти подход для выбора диапазона времени в этом коде. Как мне исправить мой код? Спасибо !!!

Я видел этот код

data = pd.DataFrame({'EUROSTOXX': es['SX5E'][es.index > dt.datetime(1999, 1, 1)]}) 

из моего учебника. Время, которое я хочу исправить, - с (1999, 1, 1) до (2016, 1, 1)

Я попробовал несколько кодов, чтобы изменить время, например:

data = pd.DataFrame({'EUROSTOXX': es['SX5E'][dt.datetime(2016, 1, 1)> es.index > dt.datetime(1999, 1, 1)]})

но это не удалось. Кто-нибудь может меня спасти?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Просто пример для иллюстрации выбора диапазона времени:

Пример кадра данных:

>>> df
                 date
0 2001-01-01 00:00:00
1 2001-01-01 01:00:00
2 2001-01-01 02:00:00
3 2001-01-01 03:00:00
4 2001-01-01 04:00:00
5 2001-01-01 05:00:00
6 2001-01-01 06:00:00
7 2001-01-01 07:00:00
8 2001-01-01 08:00:00
9 2001-01-01 09:00:00

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

>>> df[(df['date'] > '2001-01-01 00:00:00') & (df['date'] <= '2001-01-01 03:00:00')]
                 date
1 2001-01-01 01:00:00
2 2001-01-01 02:00:00
3 2001-01-01 03:00:00

Во-вторых, установите столбец date в качестве индекса и затем примените метод loc:

>>> df = df.set_index(df['date'])
>>> df
                                   date
date
2001-01-01 00:00:00 2001-01-01 00:00:00
2001-01-01 01:00:00 2001-01-01 01:00:00
2001-01-01 02:00:00 2001-01-01 02:00:00
2001-01-01 03:00:00 2001-01-01 03:00:00
2001-01-01 04:00:00 2001-01-01 04:00:00
2001-01-01 05:00:00 2001-01-01 05:00:00
2001-01-01 06:00:00 2001-01-01 06:00:00
2001-01-01 07:00:00 2001-01-01 07:00:00
2001-01-01 08:00:00 2001-01-01 08:00:00
2001-01-01 09:00:00 2001-01-01 09:00:00

Теперь используется loc:

>>> df.loc['2001-01-01 00:00:00':'2001-01-01 03:00:00']
                                   date
date
2001-01-01 00:00:00 2001-01-01 00:00:00
2001-01-01 01:00:00 2001-01-01 01:00:00
2001-01-01 02:00:00 2001-01-01 02:00:00
2001-01-01 03:00:00 2001-01-01 03:00:00

Надеюсь, это поможет.

0 голосов
/ 03 января 2019

Этот синтаксис должен работать:

data = pd.DataFrame({'EUROSTOXX': es['SX5E'][(es.index > datetime(1999, 1, 1)) & (es.index < dt.datetime(2016, 1, 1))]})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...