Замените дату начала для заданного набора данных даты csv с помощью panda

#python #python-3.x #python-2.7 #date

Вопрос:

python новичок здесь у меня есть csv-файл с данными за один год, начиная с 1/1/2000, я пытаюсь преобразовать дату начала данных в указанную дату, 26.08.2010. Код, который у меня в настоящее время есть, заменяет дату, но он начинается 1/1/2020 вместо 26/08/2020

 startdate = pd.to_datetime(startdate, dayfirst = True)
data[date] = pd.to_datetime(data[date])
data[date] = [f.replace(year = startdate.year) for f in data[date]]
data = data.set_index(date)
data = data.astype('float')
 

и мне было интересно, есть ли способ сопоставить дату начала с заданным набором данных, поэтому, если моя дата начала находится в 1/8/2018, я начинаю заменять данные из csv-файла с 1/8/2000, поэтому конечный диапазон дат будет с 1/8/2018 по 31/8/2019.

Ввод:

01/01/2000 00:000

01/01/2000 01:000

………

31/12/2000 23:000

Ожидаемый результат

26/08/2018 00:000

26/08/2018 01:000

.
.
.
.
.

26/08/2019 23:000

Спасибо вам за вашу помощь 🙂

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

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

2. Отредактировал сообщение спасибо!

Ответ №1:

 pd.to_datetime(timestamps,day_first=True)   datetime.timedelta(days=664249) 
 

Я верю, что дал бы тебе то, чего ты хочешь … просто компенсируйте это разницей в датах

Ответ №2:

Что-то в этом роде:

 import pandas as pd

date_old = pd.to_datetime("01/01/2000 00:000")
date_new = pd.to_datetime("26/08/2018 00:000")

delta = date_new - date_old

days = 366

result = [date_old   delta   pd.Timedelta(days=days) for day in range(days)]