Как использовать метку времени в построении наивной байесовской модели в Python
У меня есть набор данных с меткой времени в качестве одного из столбцов в формате 09/07/2016 23:58.
Я пытаюсь применить Наивный Байес к этим Данным, и я столкнулся с приведенной ниже ошибкой. Пожалуйста, дайте мне знать, как использовать эти данные в моей модели
ValueError: недопустимый литерал для float(): 06.12.2016, 23:59
2 ответа
Решение
Тебе нужно to_datetime
с параметром errors='coerce'
для преобразования плохих не разбираемых значений в NaT
:
df = pd.DataFrame({'date':['12/06/2016 23:59','12/06/2016 23:59', 'a']})
print (df)
date
0 12/06/2016 23:59
1 12/06/2016 23:59
2 a
print (pd.to_datetime(df.date, errors='coerce'))
0 2016-12-06 23:59:00
1 2016-12-06 23:59:00
2 NaT
Name: date, dtype: datetime64[ns]
Для проверки плохих значений используйте boolean indexing
- вернуть все строки, где есть NaT
:
print (df[pd.to_datetime(df.date, errors='coerce').isnull()])
date
2 a
Из вашего вопроса не совсем понятно, что вы делаете, но в Интернете уже есть пара примеров:
- Как реализовать наивный байесовский с нуля в Python
- Наивный байесовский
- 6 простых шагов для изучения наивного байесовского алгоритма (с кодом на Python)
И некоторые фрагменты кода в SO: