Нарезка панд. Серия по указанным временным меткам - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь нарезать панд. Серия по заданным временным отметкам.Из других вопросов SO я получил следующий рабочий процесс:

import pandas as pd
x = ... # some time data
y = ... # some value data

lower_limit_x = pd.to_datetime(x.index) >= pd.to_datetime('2019-01-23 20:59:04')
upper_limit_x = pd.to_datetime(x.index) <= pd.to_datetime('2019-01-23 21:37:44')

lower_limit_y = pd.to_datetime(y.index) >= pd.to_datetime('2019-01-23 20:59:04')
upper_limit_y = pd.to_datetime(y.index) <= pd.to_datetime('2019-01-23 21:37:44')

mask_x = lower_limit_x & upper_limit_x
mask_y = lower_limit_y & upper_limit_y

sliced_x = x[mask_x]
sliced_y = y[mask_y]

Однако, если я начну со следующего набора данных, который охватывает ок.2019-01-23 20:45 до 2019-01-23 04: 00:

Original data

Полученные данные кажутся пустыми.Если я сделаю

sliced_y.values

, результат будет пустым.

Как я могу успешно нарезать свои данные по меткам времени?

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете создать один фрейм данных, затем использовать loc acessor:

df = pd.DataFrame(y.values, index=x.values)

sliced_df = df.loc['2019-01-23 20:59:04': '2019-01-23 21:37:44']

sliced_df теперь является одним фреймом данных, и вы можете получить доступ к вашему x иy координаты следующим образом:

sliced_times = sliced_df.index
sliced_values = sliced_df.iloc[:, 0].values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...