Как преобразовать формат даты в фрейм данных

У меня есть фрейм данных, который содержит следующую информацию:

N_Ord   PSN      debut_interval
1      A4BA0D07  01/01/2022
2      04BB0607  01/01/2022

Мне необходимо

  • преобразовать debut_interval каждой строки моего фрейма данных в этот формат гггг-мм-ддT00:00:00
  • добавить новый столбец fin_interval, который содержит ту же дату, что и гггг-мм-ддT23:59:59

Вы видели документы, описывающие strptime и strftime? Если да, то какая часть вам нужна помощь в понимании?

ramzeek 16.05.2022 21:38

@ramzeek да, это я отредактировал пост

miss-chl 16.05.2022 21:43

Пожалуйста, покажите, что вы пробовали, и объясните, как это делает то, что вы хотите.

joanis 16.05.2022 21:47

@joanis хорошо, мне нужно запросить API с интервалом времени, запрос выглядит так url = "https://aaa.com/mw/psn/"+row['PSN']+"/record/16?key=nLsBvp0‌​YedcXUcaU73fs&from_d‌​ate="+start_date+"&"‌​+end_date у меня есть фрейм данных, как показано в вопросе, мне нужно преобразовать все форматы дат моего фрейма данных в формат yyyy-mm-ddThh:mm:ss где start_date= гггг-мм-ддT00:00:00 и end_date= **гггг-мм-ддT23:59:59**

miss-chl 16.05.2022 21:55

Да, это больше о том, что вы хотите сделать, но вы хоть что-нибудь пробовали или просто надеетесь, что кто-то на SO напишет код для вас? Боюсь, этот сайт не является бесплатной службой написания кода.

joanis 16.05.2022 21:58

@joanis я попробовал ToString("гггг-ММ-ддTHH:мм:сс"), но он выдает ошибку Объект 'str' не имеет атрибута 'ToString'

miss-chl 16.05.2022 22:05
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
6
32
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

def get_date(fmt):
    fmt = "%Y-%m-%dT" + fmt
    return lambda x: x.dt.strftime(fmt)

df['debut_interval'] = pd.to_datetime(df['debut_interval'])
df.debut_interval.transform({'debut_interval':get_date('00:00:00'),
                            'fin_interval':get_date('23:59:59')})
 
        debut_interval         fin_interval
0  2022-01-01T00:00:00  2022-01-01T23:59:59
1  2022-01-01T00:00:00  2022-01-01T23:59:59
Ответ принят как подходящий

Ты можешь использовать:

fmt = '%Y-%m-%dT%H:%M:%S'
df2 = (df
  .assign(debut_interval=pd.to_datetime(df['debut_interval'], dayfirst=True),
          fin_interval=lambda d: d['debut_interval'].add(pd.to_timedelta('23:59:59')).dt.strftime(fmt))
  .assign(debut_interval=lambda d: d['debut_interval'].dt.strftime(fmt)
          )
       )

Выход:

   N_Ord       PSN       debut_interval         fin_interval
0      1  A4BA0D07  2022-01-01T00:00:00  2022-01-01T23:59:59
1      2  04BB0607  2022-01-01T00:00:00  2022-01-01T23:59:59

Другие вопросы по теме