【问题标题】:How to use Timestamp Data in Building Naive Bayes model in Python如何在 Python 中使用时间戳数据构建朴素贝叶斯模型
【发布时间】:2017-04-30 18:45:19
【问题描述】:

我有一个数据集,其中时间戳是列之一,格式为 09/07/2016 23:58。

我正在尝试在此数据上应用朴素贝叶斯,但我面临以下错误。请让我知道如何在我的模型中使用此数据

ValueError:float() 的无效文字:12/06/2016 23:59

【问题讨论】:

  • 什么是df['Timestamp'].dtype?
  • 您确定您的日期列的dtypedatetime?通过df.dtypes 对其进行测试。如果没有,似乎有一些不良数据 - 使用pd.to_datetime(df.date, erors='coerce')
  • 如果无法转换为日期时间,则将值转换为NaT
  • 它是object类型的,如何转换为Datetime?它抛出一个错误

标签: python python-2.7 pandas timestamp naivebayes


【解决方案1】:

您需要带有参数errors='coerce'to_datetime 将错误的不可解析值转换为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

【讨论】:

  • 谢谢@jezrael。由于我是 python 新手,我还有一个查询。既然我有了这个专栏,我如何将它附加到我原来的 Dataframe 或者无论如何,现有的 Dataframe 将被更新
  • 感谢您的采纳!使用df.date = pd.to_datetime(df.date, errors='coerce')df['date'] = pd.to_datetime(df['date'], errors='coerce')
【解决方案2】:
猜你喜欢
  • 2013-09-09
  • 2020-06-28
  • 2021-07-28
  • 2013-11-24
  • 2021-08-17
  • 2016-01-02
  • 2019-02-21
  • 2018-12-15
  • 2016-08-16
相关资源
最近更新 更多