Переформатировать столбец даты и времени в пандах - PullRequest
0 голосов
/ 10 мая 2018

У меня есть датафрейм Pandas df, содержащий datetime и их соответствующие значения. Теперь я хочу внести некоторые изменения в формат для каждой даты и времени в кадре данных, но заметил, что обычный цикл for фактически ничего не меняет в кадре данных.

Это то, что я пытался, а также показывает, что я пытаюсь сделать:

#original format of the datetimes: sunnuntai 1.1.2017 00:00

for i in df["Datetime"]:

#removes the string containing the weekday from the beginning
    i = re.sub("^[^ ]* ","", i) 

#converts 1.1.2017 00:00 into 2017-01-01 00:00
    i = datetime.datetime.strptime(i, "%d.%m.%Y %H:%M").strftime("%Y-%m-%d %H:%M")

Как мне постоянно делать эти изменения формата? Спасибо.

1 Ответ

0 голосов
/ 10 мая 2018

Угробить цикл, стремиться к векторизации. Я ломаю шаги -

  1. используйте str.split, чтобы избавиться от начального текста,
  2. pd.to_datetime с dayfirst=True для преобразования даты и времени и
  3. dt.strftime для преобразования результата в ваш формат

df['Datetime'] = pd.to_datetime(
    df['Datetime'].str.split(n=1).str[1], dayfirst=True
).dt.strftime("%Y-%m-%d %H:%M")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...