#python #pandas
Вопрос:
dat = df['Date'].tolist()
['Sun 11 - Thu 15 Apr 2021 u2002Online Edition Available',
'Tue 27 - Thu 29 Apr 2021',
'Fri 14 - Sat 15 May 2021',
'Mon 24 - Thu 27 May 2021',
'Tue 13 - Sat 17 Apr 2021',
'Fri 23 - Sun 25 Apr 2021',
'Sun 13 - Tue 15 Jun 2021',
'Wed 07 - Sun 18 Apr 2021']
Хотите разделить этот вывод на start_date и end_date в формате yyyymmdd
Комментарии:
1. Можем ли мы предположить, что «Онлайн-издание не доступно»?
2. На самом деле нам тоже нужно избавиться от этого.
Ответ №1:
Вот решение, предполагающее, что каждое start_date
и end_date
происходит в один и тот же месяц, и форматирование всегда одно и то же. Вы можете адаптировать его в случае изменения форматирования.
import datetime
import pandas as pd
start_date_list = list()
end_date_list = list()
for index, row in data_df.iterrows():
date_list = row['Date'].split(' - ')
end_date = datetime.datetime.strptime(date_list[1], '%a %d %b %Y')
start_date = datetime.date(end_date.year, end_date.month, int(date_list[0].split(' ')[1]))
start_date_list.append(start_date.strftime('%Y%m%d'))
end_date_list.append(end_date.strftime('%Y%m%d'))
data_df['start_date'] = start_date_list
data_df['end_date'] = end_date_list