繁体   English   中英

如何将熊猫列转换为日期时间

[英]How to convert a pandas column to datetime

我有一个数据框df

df
    date   
0  05/01/2017
1  04/01/2017
2  08/01/2017
3  03/01/2017
4  10/01/2017

我想将列datestr转换为datetime

我正在做如下

df['date'] = pd.to_datetime(df['date'])

但它需要无限的时间,如果我尝试

pd.to_datetime(df['date'][0])

我收到以下错误

year is out of range

指定formatinfer_datetime_format可以显着提高性能:

df = pd.concat([df]*10000)

%timeit pd.to_datetime(df['date'])                              # 12.5 s per loop
%timeit pd.to_datetime(df['date'], format='%m/%d/%Y')           # 252 ms per loop
%timeit pd.to_datetime(df['date'], infer_datetime_format=True)  # 228 ms per loop

事先告诉熊猫您的期望通常是提高性能的一种好方法。 因此,如果您正在从输入文件中进行读取,则此想法也将与pd.read_csv一起使用。

您的错误很可能是由于数据不正确造成的。 如果您希望为不可转换的值返回NaT ,请指定errors='coerce'

pd.to_datetime(df['date'], format='%m/%d/%Y', errors='coerce')

试试这个代码:

df['date'] = pd.to_datetime(df['date'],infer_datetime_format=True)

从pandas官方文档获取,如果传递的infer_datetime_format = True并非完全是ISO8601格式,而是正确的常规格式(例如您要传递的格式),通常可以加快解析速度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM