从字符串转换为日期时间时获取常规日期时间格式而不是纪元时间?

问题描述

我在具有以下格式的列中有字符串类型日期:August 14,2020。我想将它转换为具有通常日期时间格式的日期时间对象,但使用下面的代码给了我纪元时间:

df.loc[mask,'date_added'] = df.loc[mask,'date_added'].apply(lambda x : pd.to_datetime(x))

我知道您可以使用 .fromtimestamp(),但是 .to_datetime() 中是否有获取日期时间对象和格式的选项?我认为使用 .fromtimestamp() 也很难合并到一个 lambda 函数中。我还尝试将 .to_period() 添加到 lambda 函数中,这会导致格式正确,但在使用 seaborn 绘图时会导致问题。

在将字符串转换为日期时间时,有没有办法将其转换为常规日期时间格式?

示例数据:

    show_id     date_added
0   s1     August 14,2020
1   s2    December 23,2016
2   s3    December 20,2018
3   s4    November 16,2017

示例数据的df代码

pd.DataFrame(([(0,'s1','August 14,2020'),(1,'s2','December 23,2016'),(2,'s3','December 20,2018'),(3,'s4','November 16,2017')]),columns=['index','id','date_added'])

解决方法

是的,你可以df['date_added']=df['date_added'].astype('datetime')