2016-11-29 2 views
-1

Существует dataframe с колонной time что string и date что int от 1 до 140.Как преобразовать время со строковым форматом в Time in pandas?

enter image description here

время является строка:

0   00:05:24 
1   00:05:43 
2   00:06:34 
3   00:06:50 
4   00:06:55 

Я хочу, чтобы создать модель Random Forest для прогнозирования класса h, но поскольку мы можем видеть, что столбец даты и времени не полезен, и я не могу использовать их в Random Forest. Мне нужно каким-то образом объединить эти два столбца в новый, чтобы сделать их полезными для прогнозирования.

+0

, что делает 'date' представлять здесь? – EdChum

+0

Каково значение «даты»? – Chandan

+0

'date' - это номер' int' от 1 до 140, представляющий дату, когда '' '(уникальный идентификатор) произошел в' time' в 'date'. – samanv

ответ

1

Если вы хотите сохранить все как числовые функции, то какая бы дата ни была (я предполагаю, что вы нумеруете дни относительно некоторой нулевой точки?), Вы можете добавить время как часть дня (время в секундах/количество секунд в день).

пустышки данные:

>>> df 
13: date  time 
0 23 00:05:43 
1 45 00:06:34 
2 67 00:06:50 
3 89 00:06:55 

Вычислить время фракция, добавьте ее в дату, чтобы сделать 'время':

>>> df['seconds'] = df.time.apply(pd.to_timedelta).apply(lambda x: x.total_seconds()) 
>>> df['of_day'] = df.seconds/(24*60*60) 
>>> df['datetime_number'] = df.date + df.of_day 
>>> df 
17: date  time seconds of_day datetime_number 
0 23 00:05:43 343.0 0.003970  23.003970 
1 45 00:06:34 394.0 0.004560  45.004560 
2 67 00:06:50 410.0 0.004745  67.004745 
3 89 00:06:55 415.0 0.004803  89.004803 
Смежные вопросы