Python / Pandas:如何从datetime64 [ns]转换为datetime

时间:2016-08-29 13:34:54

标签: python-2.7 datetime pandas datetime64

我有一个处理Excel文件的脚本。发送它的部门有一个生成它的系统,我的脚本停止工作。

我突然收到以下代码行的错误Can only use .str accessor with string values, which use np.object_ dtype in pandas

df['DATE'] = df['Date'].str.replace(r'[^a-zA-Z0-9\._/-]', '')

我检查了旧系统(dtype:object)中文件中日期列的类型与新系统中的日期列的类型(dtype:datetime64 [ns])。

如何将日期格式更改为我的脚本可以理解的内容?

我看到this answer,但我对日期格式的了解并不是那么精细。

3 个答案:

答案 0 :(得分:2)

您可以在dataframe列上使用apply函数将必要的列转换为String。例如:

df['DATE'] = df['Date'].apply(lambda x: x.strftime('%Y-%m-%d'))

确保导入datetime模块。

apply()将一次评估每个单元格,并应用lambda函数中指定的格式。

答案 1 :(得分:1)

您可以使用pd.to_datetime

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

答案 2 :(得分:0)

pd.to_datetime返回一系列datetime64 dtype,如此处所述:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html

df['DATE'] = df['Date'].dt.date

或者这个:

df['Date'].map(datetime.datetime.date)