Это вопрос, над которым я больше всего работал над Stackoverflow. Я надеюсь, что это идеально подходит для вашей проблемы.
Итак, ваши значения периода составляют от 1 до 48, если предположить, и это был единственный способ, которым я мог бы получить это, что это получасовые данные, что я сделал, что я изменил эти значения через полчаса от предоставленной даты и затем, используя форматирование, я изменил его на datetimeindex, а затем создал график.
Итак, вот код и окончательный вывод:
m=pd.read_csv("Data3.csv")
final=m[['Published NIV','Future NIV']]
new2=['0:00:00' if a==1 else str(a//2-1)+':30:00' if a%2==0 else str(a//2)+':00:00' for a in m['Settlement Period']]
alpha=m['Settlement Date']+'-'+new2
final.index=pd.to_datetime(alpha,format='%Y-%m-%d-%X')
final.plot(figsize=(15,9))
И вывод:

Единственный недостаток этого кода, который я вижу, заключается в том, что вы не получите те периоды с номерами от 1 до 48, которые с некоторым обходным путем я могу попытаться вернуть, но скажите, подходит ли это вашему случаю.