минутные данные временного ряда - как выбрать данные для заданного интервала - PullRequest
0 голосов
/ 18 июня 2020

У меня есть такие данные таймсерий:

  ticker        close
created_at                                   
2020-06-10 17:02:00+00:00   TSLA  1014.354980
2020-06-10 18:30:00+00:00   TSLA  1017.419312
2020-06-10 18:31:00+00:00   TSLA  1018.344971
2020-06-10 18:32:00+00:00   TSLA  1018.340027
2020-06-10 18:33:00+00:00   TSLA  1017.919983
2020-06-10 18:34:00+00:00   TSLA  1015.210022
2020-06-10 18:35:00+00:00   TSLA  1015.772583
2020-06-10 18:36:00+00:00   TSLA  1016.775024
2020-06-10 18:37:00+00:00   TSLA  1015.679993
2020-06-10 18:38:00+00:00   TSLA  1014.080017
2020-06-10 18:39:00+00:00   TSLA  1013.000000
2020-06-10 18:40:00+00:00   TSLA  1008.880005
2020-06-10 18:41:00+00:00   TSLA  1011.369995
2020-06-10 18:42:00+00:00   TSLA  1012.400024
2020-06-10 18:43:00+00:00   TSLA  1013.000000
2020-06-10 18:44:00+00:00   TSLA  1014.459412
2020-06-10 18:45:00+00:00   TSLA  1014.070007
2020-06-10 18:46:00+00:00   TSLA  1015.575012
2020-06-10 18:47:00+00:00   TSLA  1014.419983
......................

Я хочу выбирать цену закрытия через каждые 5 минут, например, 18: 30,18: 35,18: 40 et c. Было предложено использовать повторную выборку, однако я не использую sh для повторной выборки данных как таковых. Все, что я хочу сделать, это получать цену закрытия каждые 5 минут, как лучше всего это сделать

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Следующие df,

| date                | tick   |   price |
|:--------------------|:-------|--------:|
| 2020-06-10 18:30:00 | TSLA   | 1017.42 |
| 2020-06-10 18:31:00 | TSLA   | 1018.34 |
| 2020-06-10 18:32:00 | TSLA   | 1018.34 |
| 2020-06-10 18:33:00 | TSLA   | 1017.92 |
| 2020-06-10 18:34:00 | TSLA   | 1015.21 |
| 2020-06-10 18:35:00 | TSLA   | 1015.77 |
| 2020-06-10 18:36:00 | TSLA   | 1016.78 |
| 2020-06-10 18:37:00 | TSLA   | 1015.68 |
| 2020-06-10 18:38:00 | TSLA   | 1014.08 |
| 2020-06-10 18:39:00 | TSLA   | 1013    |
| 2020-06-10 18:40:00 | TSLA   | 1008.88 |
| 2020-06-10 18:41:00 | TSLA   | 1011.37 |
| 2020-06-10 18:42:00 | TSLA   | 1012.4  |
| 2020-06-10 18:43:00 | TSLA   | 1013    |
| 2020-06-10 18:44:00 | TSLA   | 1014.46 |
| 2020-06-10 18:45:00 | TSLA   | 1014.07 |
| 2020-06-10 18:46:00 | TSLA   | 1015.58 |
| 2020-06-10 18:47:00 | TSLA   | 1014.42 |

могут отображаться каждые 5 минут с помощью ilo c:

df.iloc[::5]

, что приводит к:

| date                | tick   |   price |
|:--------------------|:-------|--------:|
| 2020-06-10 18:30:00 | TSLA   | 1017.42 |
| 2020-06-10 18:35:00 | TSLA   | 1015.77 |
| 2020-06-10 18:40:00 | TSLA   | 1008.88 |
| 2020-06-10 18:45:00 | TSLA   | 1014.07 |

, если данные имеют новую запись каждую минуту, в противном случае вы можете изменить stride значение 5.

0 голосов
/ 18 июня 2020

Если вы просто хотите возвращать данные с 5-минутным интервалом, вы можете просто получить минуты, кратные 5:

df['created_at'] = pd.to_datetime(df['created_at'])
df = df[df['created_at'].dt.strftime('%M').astype(int) % 5 ==0]
print(df)

                  created_at ticker        close
1  2020-06-10 18:30:00+00:00   TSLA  1017.419312
6  2020-06-10 18:35:00+00:00   TSLA  1015.772583
11 2020-06-10 18:40:00+00:00   TSLA  1008.880005
16 2020-06-10 18:45:00+00:00   TSLA  1014.070007
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...