#python #pandas #datetime
#python #панды #дата и время
Вопрос:
Я пытаюсь рассмотреть список дат
dates=['10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/30/2020',
'10/29/2020']
которые вводятся в следующем коде:
for t in dates:
t = datetime.strptime(t, '%m/%d/%Y')
start_date = t timedelta(2)
day = datetime.strptime(start_date, '%m/%d/%Y')
но он возвращает TypeError: strptime() argument 1 must be str, not datetime.datetime
здесь:
---> 11 day = datetime.strptime(start_date, '%m/%d/%Y')
Я хотел бы рассмотреть в качестве start_date два дня после выбранной даты; например, если у меня есть 10/30/2020, я бы рассмотрел 11/1/2020.
Подскажите, пожалуйста, как получить эту информацию?
Ответ №1:
strptime
преобразует строку в datetime
объект, strftime
преобразует datetime
объект в строку. Вы day
должны преобразовать обратно в строку, поэтому вам следует использовать strftime
:
for t in dates:
t = datetime.strptime(t, '%m/%d/%Y')
start_date = t timedelta(2)
# notice strftime instead of strptime
day = datetime.strftime(start_date, '%m/%d/%Y')
print(day) # 11/01/2020 for 10/30/2020 and 10/31/2020 for 10/29/2020