2015-11-09 6 views
2

У меня есть панда DataFrame под названием ФР, который имеет следующие данные:Панда: Создать новый столбец в DataFrame на основе другого столбца в DataFrame

Index SourceDate 
0  AUG_2013 
1  SEP_2013 
2  JAN_2012 

Мне нужно добавить дополнительный столбец, который превращает каждый из этих дат в следующая колонка ConvertedDate. Этот столбец будет иметь дату в формате YYYY-MM-DD с днем ​​всегда быть 01.

Index SourceDate ConvertedDate 
0  AUG_2013  2013-08-01 
1  SEP_2013  2013-09-01 
2  JAN_2012  2012-01-01 

Я пытался сделать это с:

df['ConvertedDate'] = time.strptime(str.replace(str.rsplit(df.SourceDate,'_',1)[0],'_','-01-'),'%b-%d-%Y') 

К сожалению, это не работает, так как df.SourceDate является ряд и строковые функции не будут работать в серии.

ответ

2

Использование to_datetime и передать строку формата:

In [64]: 
df['ConvertedDate'] =pd.to_datetime(df['SourceDate'], format='%b_%Y') 
df 

Out[64]: 
    Index SourceDate ConvertedDate 
0  0 AUG_2013 2013-08-01 
1  1 SEP_2013 2013-09-01 
2  2 JAN_2012 2012-01-01 

Струнные спецификаторы питон формат даты и времени можно найти here

Смежные вопросы