X дней после каждой даты в списке

#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