如何将字符串类型转换为日期格式

时间:2015-10-26 09:49:06

标签: python date pandas

我的源数据有一个包含日期信息的列,但它是一个字符串类型。 典型的线条是这样的:

04 13, 2013
07 1, 2012 

我正在尝试转换为日期格式,因此我使用了panda的to_datetime函数:

df['ReviewDate_formated'] = pd.to_datetime(df['ReviewDate'],format='%mm%d, %yyyy')

但我收到此错误消息:

ValueError: time data '04 13, 2013' does not match format '%mm%d, %yyyy' (match)

我的问题是:

  1. 如何转换为日期格式?

  2. 我还想提取到月份,年份和日期列,因为我需要做一个月比较的月份?但这里的问题是字符串的长度各不相同。

1 个答案:

答案 0 :(得分:0)

您的格式字符串不正确,您需要'%m %d, %Y',有reference显示有效格式标识符:

In [30]:
import io
import pandas as pd
t="""ReviewDate
04 13, 2013
07 1, 2012"""
df = pd.read_csv(io.StringIO(t), sep=';')
df

Out[30]:
    ReviewDate
0  04 13, 2013
1   07 1, 2012

In [31]:    
pd.to_datetime(df['ReviewDate'], format='%m %d, %Y')

Out[31]:
0   2013-04-13
1   2012-07-01
Name: ReviewDate, dtype: datetime64[ns]

要回答第二部分,一旦dtype为datetime64,您就可以调用向量化的dt访问者方法来获取daymonth和{ {1}}部分:

year