to_datetime没有处理大纲中YYYY-MM-DD HH:MM格式的字符串

时间:2014-02-26 13:54:13

标签: python pandas

我的日期格式为2014-01-31 05:47。

当它读入pandas时,对象会变为对象。

当我尝试将其更改为pd.to_datetime时,没有错误,但数据类型不会更改为datatime。

请提出一些建议。

T=pd.read_csv("TESTING.csv") 
T['DATE']=pd.to_datetime(T['DATE']) 
T.dtypes 
>DATE object 
T['DATE'] 
>2014-01-31 05:47

1 个答案:

答案 0 :(得分:0)

基本上,Pandas不明白字符串“2014-01-31 05:47”不是你给它一个字符串的事实。如果您从CSV文件中读取此字符串,请阅读read_csv方法中的Pandas文档,该方法允许您解析日期时间。

然而,鉴于这样的事情:

records = ["2014-01-31 05:47", "2014-01-31 14:12"]
df = pandas.DataFrame(records)
df.dtypes
>0    object
>dtype: object

这是因为您没有告诉Pandas如何将您的字符串解析为日期时间(或TimeStamp)类型。

使用pandas.to_datetime方法是您想要的,但您必须小心地只传递包含您要转换的值的列。请记住,pandas不会改变你正在处理的数据帧,你需要再次保存它。

df[0] = pandas.to_datetime(df[0])
df.dtypes
>0    datetime64[ns]
>dtype: object

这就是你想要的。细胞现在是正确的格式。 有很多方法可以实现相同的功能,你可以将apply()方法与lambda一起使用,从CSV或SQL中正确解析或使用Series。