是否有比pd.to_datetime更快的日期转换?

时间:2017-03-13 19:33:02

标签: python date date-conversion

我正在尝试将01/01/2017格式的pandas数据框中的日期转换为python格式,以便提取星期几。 我一直在用:

df['Date'] = pd.to_datetime(df['Date'])
df['DOW'] = df['Date'].dt.weekday_name

但第一行约需250μs,我有> 100万个日期要转换。

有更快的方法吗?

1 个答案:

答案 0 :(得分:3)

format添加pd.to_datetime参数,因为您知道格式是什么将使它快〜40倍。

pd.to_datetime(df['Date'], format='%m/%m/%Y')

我需要大约4秒钟

此外,它有点hacky,但如果您知道可能日期的上限和下限,您可以使用所有可能字符串的映射来加入数据:

dates = pd.date_range(pd.Timestamp.min, pd.Timestamp.max)
date_mappings = pd.Series(dates, index=dates.strftime('%d/%m/%Y'), name='Date')
df = df.join(date_mappings, on='Date', lsuffix='_str')

这花了<在我的电脑上1秒,如果你知道可能的日期范围,可能会进一步减少