Данные времени не соответствуют формату "'% H:% M.% S% f'" - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь прогнозировать данные временного ряда.
Данные временного ряда в моем файле csv имеют вид 0: 00.000. Следовательно, я проиндексировал столбец данных временного ряда следующим образом:

df.columns=['Elapsed','I']
df['Elapsed']=pd.to_datetime(df['Elapsed'], format='%H:%M.%S%f')
df['Elapsed']=df['Elapsed'].dt.time
df.set_index('Elapsed', inplace=True)

Затем позже я разделил свои данные на тестовую секцию и секцию поезда

train = df.loc['0:00.000':'0:28.778']
test = df.loc['0:28.779':] 

Мой след стека enter image description here enter image description here Выписка из моегоданные:

enter image description here

Может кто-нибудь объяснить, как предотвратить возникновение этой ошибки?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Поскольку вопрос теперь изменился, я напишу новый ответ.

Ваш фрейм данных индексируется экземплярами datetime.time, но вы пытаетесь разделить его на строки - pandas не делаетхотите сравнить строки со временем.

Чтобы заставить нарезку работать, попробуйте следующее:

split_from = datetime.datetime.strptime('0:00.000', '%H:%M.%S%f').time()
split_to = datetime.datetime.strptime('0:28.778', '%H:%M.%S%f').time()
train = df[split_from:split_to]

Было бы также полезно сохранить формат в переменной, поскольку вы сейчас используетев нескольких местах.

Или, если вы установили фиксированное время разделения, вы можете вместо этого сделать

split_from = datetime.time(0, 0, 0)
split_to = datetime.time(0, 28, 77.8)
train = df[split_from:split_to]
0 голосов
/ 06 декабря 2018

Не видя ваших данных, я просто догадываюсь, но здесь идет речь:

Я предполагаю, что ваши исходные данные в столбце «Истек» выглядят как

'12:34.5678'
'12:35.1234'

В частности, он имеет кавычки на каждой стороне чисел.В противном случае ваша строка

df['Elapsed']=pd.to_datetime(df['Elapsed'], format="'%H:%M.%S%f'")

потерпит неудачу.

Таким образом, в сообщении об ошибке указывается, что ваши времена нарезки имеют неправильный формат: они пропускают кавычки с каждой стороны.Измените его на

train = df.loc["'0:00.000'":"'0:28.778'"]

(аналогично для следующей строки), и, надеюсь, это разберется.

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

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