2017-07-13 46 views
0

我有格式的字符串:转换日期字符串pd.to_datetime对象蟒蛇

2013-07-22 00:00:00 

我需要将其转换为使用pd.to_datetime DateTime对象。但是,我不断收到错误。这是我试过的:

data['date_object'] = pd.to_datetime(data['date_as_string'], format = '%Y-%m-%d %H:%M:%S') 

任何帮助将不胜感激。

+2

你会得到什么错误?请修改您的问题以包含这些问题。 – bernie

+1

这应该起作用了,它肯定适用于该示例,如果出现错误,请将其包含在您的问题中,因为您的数据可能不正确。如果您有duff数据,您可以将duff日期转换为'NaT':'data ['date_object'] = pd.to_datetime(data ['date_as_string'],format ='%Y-%m-%d%H:% M:%S',errors ='coerce')' – EdChum

+0

我使用了'错误='coerce'',它工作。所以我可以回去修复出现错误的日期。谢谢 – Fungie

回答

0

以下在pandas 0.17+中工作正常。

>>> from StringIO import StringIO 
>>> st = """ 
... date_as_string 
... 2013-07-22 00:00:00 
... 2013-07-23 00:00:00 
... 2013-08-22 00:00:00 
... """ 
>>> import pandas as pd 
>>> df = pd.read_csv(StringIO(st)) 
>>> df 
     date_as_string 
0 2013-07-22 00:00:00 
1 2013-07-23 00:00:00 
2 2013-08-22 00:00:00 
>>> data = df 
>>> data['date_object'] = pd.to_datetime(data['date_as_string'], format = '%Y-%m-%d %H:%M:%S') 
>>> data 
     date_as_string date_object 
0 2013-07-22 00:00:00 2013-07-22 
1 2013-07-23 00:00:00 2013-07-23 
2 2013-08-22 00:00:00 2013-08-22 
>>> 

如果你可以把足够的数据和代码重现你的错误,我们可以调试的原因。否则,快速修复是coerce的错误如下:

data['date_object'] = pd.to_datetime(data['date_as_string'], format = '%Y-%m-%d %H:%M:%S', errors='coerce')