从Pandas DataFrame中的YYYYMMDD列中提取年份

时间:2016-08-10 12:23:11

标签: python date pandas python-datetime

我有一个pandas DataFrame,我想在其中创建一个额外的列,其中只包含我从YYYYMMDD格式的列中提取的年份。 在搜索论坛时,我找到了to_datetime命令,但就我的情况而言,它没有用。

我尝试了以下内容:

df = pd.DataFrame({'name' : ['A','B'],
                   'date' :[20130102,20140511]})

df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year

我得到的输出是:

                           date name   year
0 1970-01-01 00:00:00.020130102    A   1970
1 1970-01-01 00:00:00.020140511    B   1970

但我想得到:

       date name  year
0  20130102    A  2013
1  20140511    B  2014

我也在没有to_datetime的情况下尝试过,因为我的日期并不完全符合yyyy-mm-dd格式,但也无法实现这一目标。 我希望你能帮助我解决这个新手问题。问题,非常感谢!

1 个答案:

答案 0 :(得分:1)

这是您需要的,用于指定您提供日期的格式。

 df['date'] = pd.to_datetime(df['date'],format='%Y%m%d')