>我有一个格式为 2014-01-31 05:47 的日期。
当它读入熊猫时,对象被更改为对象。
当我尝试将其更改为pd.to_datetime时,没有错误,但数据类型不会更改为数据时间。
请提出一些出路。
T=pd.read_csv("TESTING.csv")
T['DATE']=pd.to_datetime(T['DATE'])
T.dtypes
>DATE object
T['DATE']
>2014-01-31 05:47
基本上,Pandas 不明白字符串"2014-01-31 05:47"是什么,除了你给了它一个字符串的事实。如果您从 CSV 文件中读取此字符串,请阅读 Pandas 文档,了解允许您解析日期时间的 read_csv 方法。
但是,给定这样的东西:
records = ["2014-01-31 05:47", "2014-01-31 14:12"]
df = pandas.DataFrame(records)
df.dtypes
>0 object
>dtype: object
这是因为你还没有告诉 Pandas 如何将你的字符串解析为日期时间(或时间戳)类型。
使用 pandas.to_datetime 方法是您想要的,但您必须小心,只传递具有要转换的值的列。请记住,熊猫不会改变您正在处理的数据帧,您需要再次保存它。
df[0] = pandas.to_datetime(df[0])
df.dtypes
>0 datetime64[ns]
>dtype: object
这就是你想要的。单元格现在是正确的格式。有很多方法可以实现相同的目标,您可以将apply()方法与lambda一起使用,从CSV或SQL正确解析或使用Series。