Python 如何将字符串类型转换为日期格式
我的源数据有一列包含日期信息,但它是字符串类型。 典型的线路如下所示:Python 如何将字符串类型转换为日期格式,python,date,pandas,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 f
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)
我的问题是:
如何转换为日期格式
我还想提取到月份、年份和日期列,因为我需要进行一些逐月比较?但这里的问题是字符串的长度不同
您的格式字符串不正确,您需要“%m%d,%Y”,有一个显示有效格式标识符的:
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]
为了回答第二部分的问题,一旦数据类型是datetime64,您就可以调用向量化的dt访问器方法来获取日期、月份和年份部分:
In [33]:
df['Date'] = pd.to_datetime(df['ReviewDate'], format='%m %d, %Y')
df['day'],df['month'],df['year'] = df['Date'].dt.day, df['Date'].dt.month, df['Date'].dt.year
df
Out[33]:
ReviewDate Date day month year
0 04 13, 2013 2013-04-13 13 4 2013
1 07 1, 2012 2012-07-01 1 7 2012
请尝试%m而不是%mm。请参见此。您还遗漏了月与日之间的空格,年为%Y。这不是Excel;你的第二个问题很不清楚,很可能得不到回答。你应该重写它。