Невозможно выполнить повторную выборку между нерегулярной 15-минутной отметкой времени 00:14:59 - 00:29:59 в пандах - PullRequest
0 голосов
/ 09 мая 2019

У меня есть фрейм данных 'df' с индексом даты и времени, установленным с 15-минутными интервалами.Интервалы похожи на это

Index                Data
2015-03-15 00:14:59  36.0
2015-03-15 00:29:59  54.9
2015-03-15 00:44:59  28.7

Я хочу увеличить вышеупомянутые данные до минутных интервалов, как показано ниже, путем интерполяции данных.

Index                Data
2015-03-15 00:14:59  36.0
2015-03-15 00:15:59  36.5
2015-03-15 00:16:59  43.3
...... so on

Однако я попытался сделать следующее:

df = df.resample('T').interpolate(method='spline', order=3)

Также пробовал:

df = df.resample('60s').interpolate(method='spline', order=3)

Однако оба приведенных выше результата дают следующий результат.Они устанавливают микросекунды на 00:00:00, тогда как я хочу, чтобы они устанавливались в соответствии с начальной отметкой времени, которая заканчивается в 59. 00:14:59.

Index                Data
2015-03-15 00:14:00  NaN
2015-03-15 00:15:00  NaN
2015-03-15 00:16:00  NaN
...... so on

Как повысить частоту дискретизации в соответствии с постоянными интервалами в 59 микросекунд в конце?

Ответы [ 3 ]

0 голосов
/ 09 мая 2019

Решение от WeNYoBen будет генерировать valeus с необходимыми интервалами, если столбец индекса проиндексирован. Если нет, приведенная ниже формула сгенерирует значения. pd.date_range(df['Index'].iloc[0],df['Index'].iloc[-1],freq='T') это даст следующие значения: ['2015-03-15 00:14:59', '2015-03-15 00:15:59', '2015-03-15 00:16:59', '2015-03-15 00:17:59', '2015-03-15 00:18:59', '2015-03-15 00:19:59', '2015-03-15 00:20:59', '2015-03-15 00:21:59', '2015-03-15 00:22:59', '2015-03-15 00:23:59', '2015-03-15 00:24:59', '2015-03-15 00:25:59', '2015-03-15 00:26:59', '2015-03-15 00:27:59', '2015-03-15 00:28:59', '2015-03-15 00:29:59', '2015-03-15 00:30:59', '2015-03-15 00:31:59', '2015-03-15 00:32:59', '2015-03-15 00:33:59', '2015-03-15 00:34:59', '2015-03-15 00:35:59', '2015-03-15 00:36:59', '2015-03-15 00:37:59', '2015-03-15 00:38:59', '2015-03-15 00:39:59', '2015-03-15 00:40:59', '2015-03-15 00:41:59', '2015-03-15 00:42:59', '2015-03-15 00:43:59', '2015-03-15 00:44:59'] Но переиндексация у меня не работает! Может быть, вы можете понять это.

0 голосов
/ 09 мая 2019

Попробуйте:

df = df.asfreq('60s').interpolate()
0 голосов
/ 09 мая 2019

Использование reindex с interpolate

df.reindex(pd.date_range(df.index.min(),df.index.max(),freq='T')).interpolate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...