2016-08-10 8 views
0

У меня есть pandas DataFrame, в котором я хотел бы создать дополнительный столбец, содержащий только год, который я извлекаю из столбца в формате YYYYMMDD. При поиске в форуме я нашел команду to_datetime, но для моего случая это не сработало.Извлечение года из колонки YYYYMMDD в Pandas DataFrame

Я попытался следующие:

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, но также не может быть так. Надеюсь, вы можете помочь мне с этой проблемой «новичка», спасибо большое!

+0

Вы должны пройти '' format' к to_datetime': 'ф.р. [ 'дата'] = pd.to_datetime (DF [ 'дата'], формат = '% Y% м% D)' – EdChum

+0

отлично, большое вам спасибо! (в конце вашего формата «отсутствует») – Don

ответ

0

Это то, что вам нужно, чтобы указать формат, в котором вы указываете дату.

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