2016-12-15 46 views
3

我有一个数据集,时间戳作为格式之一,格式为09/07/2016 23:58。如何在Python中构建朴素贝叶斯模型中使用时间戳数据

我试图在这个数据上应用朴素贝叶斯,而且我正面临着下面的错误。请让我知道如何在我的模型

ValueError异常使用此数据:无效的文字浮法():2016年12月6日23:59

+0

什么是'DF [ '时间戳'。DTYPE?' –

+1

确定'dtype'您的日期列的是'datetime'?用'df.dtypes'测试它。如果不是,似乎有一些不好的数据 - 如果不能转换为日期时间,则使用'pd.to_datetime(df.date,erors ='coerce')' – jezrael

+0

将值转换为'NaT'。 – jezrael

回答

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 
+0

谢谢@jezrael。由于我是python的新手,我还有一个查询。现在我已经得到了这个专栏,我如何将它附加到我原来的Dataframe 或者无论如何,现有的Dataframe将被更新 – Anagha

+0

感谢您接受!使用'df.date = pd.to_datetime(df.date,errors ='coerce')'或'df ['date'] = pd.to_datetime(df ['date'],errors ='胁迫')' – jezrael

+0

你,它的工作。 – Anagha