Извлечение информации о дате и времени из строки в столбце фрейма данных

#python-3.x #pandas #dataframe #machine-learning #feature-engineering

#python-3.x #pandas #фрейм данных #машинное обучение #разработка функций

Вопрос:

Итак, у меня есть столбец редакции, который содержит данные в неравномерном порядке, так как у некоторых есть ‘,’ за которым следует дата, а у некоторых есть шаблон ‘,-‘.

 df.head()

17                Paperback,– 1 Nov 2016
18    Mass Market Paperback,– 1 Jan 1991
19                      Paperback,– 2016
20               Hardcover,– 24 Nov 2018
21        Paperback,– Import, 4 Oct 2018
 

Как я могу извлечь дату в отдельный столбец. Я пытался использовать str.split(), но не могу найти конкретный шаблон для извлечения.Есть ли какой-либо способ, которым я мог бы это сделать?

Комментарии:

1. obj.str.extract('((?:d sw s )?d{4}$)')

Ответ №1:

 obj = df['Edition']
obj.str.split('((?:d s w s )?d{4}$)', expand=True)
 

или

 obj.str.split('[,–] ').str[0]
obj.str.split('[,–] ').str[-1] # date
 

Ответ №2:

Попробуйте использовать dateutil

 from dateutil.parser import parse
 
df['Dt']=[parse(i, fuzzy_with_tokens=True)[0] for i in df['column']]