我的日期格式为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
答案 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。