Вот простая программа, которая получает результат, который вы ищете:
import pandas as pd
data_frame = pd.DataFrame({'Region': ['alabama', 'alabama', 'alabama', 'alabama', 'alabama'],
'Year': [2018, 2018, 2018, 2018, 2018], 'Months': ['January', 'February', 'March', 'April', 'May']})
date_1 ='{}-{}'.format(data_frame['Months'].iloc[0], data_frame['Year'].iloc[0])
date_2 = '{}-{}'.format('June', data_frame['Year'].iloc[4])
data_frame.index = pd.date_range(date_1, date_2, freq='M')
print(data_frame)
Мы можем просто отформатировать дату в начальной позиции в диапазоне, а формат даты_2 из конечной позиции + 1месяц, чтобы мы могли избежать ошибки индекса.Форматирование этих значений в строки позволит пандам форматировать их в даты с помощью функции date_range ().Мы можем установить индекс в этот диапазон, так как вы сказали, что хотите столбец с этими значениями, но если вы не хотите, чтобы даты были вашим индексом, мы могли бы также создать столбец с именем date и использовать оператор вставки, чтобы добавить ихгде угодно.В нашей функции date_range date_1 будет нашей первой датой, а date_2 будет нашей последней датой.Мы также можем установить частоту в месяц, чтобы индексы в столбце даты совпадали с индексами из других столбцов.Ниже наш вывод:
Months Region Year
2018-01-31 January alabama 2018
2018-02-28 February alabama 2018
2018-03-31 March alabama 2018
2018-04-30 April alabama 2018
2018-05-31 May alabama 2018