#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)]