Конвертировать ддммггг в дд / мм / гггг - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть df, как это:

        SEMANAS      HIDROLOGICAS        METEOROLOGICAS
     0  02042020    36.00583090379008   31.284418529316522
     1  05032020    86.91690962099126   77.01136731748973
     2  12032020    87.31778425655976   77.24180581323434
     3  19032020    59.2201166180758    54.57343110404338
     4  26032020    32.39795918367347   29.049238743116323

Я хочу преобразовать семану столбца в формат даты, подобной этой: дд / мм / гггг Я попробовал этот код:

Semanas_Oper['SEMANAS']=pd.to_datetime(Semanas_Oper['SEMANAS'],dayfirst=True).dt.strftime('%d/%m/%Y')

Но я получил эту ошибку:

ParserError: месяц должен быть в 1..12

Как я могу решить эту проблему? Спасибо.

1 Ответ

0 голосов
/ 23 апреля 2020

Иллюстрация моего комментария - pandas здесь требуется небольшая помощь, чтобы правильно разобрать даты в 'SEMANAS'. Укажите правильный формат, и ваш код будет работать нормально:

import pandas as pd
# create example df:
Semanas_Oper = pd.DataFrame({'SEMANAS': ['02042020', '05032020', '12032020', '19032020', '26032020']})
# make sure we have datetime object column:
Semanas_Oper['SEMANAS'] = pd.to_datetime(Semanas_Oper['SEMANAS'], format='%d%m%Y')
# sort by date:
Semanas_Oper = Semanas_Oper.sort_values(by=['SEMANAS'])
# format back to string:
Semanas_Oper['SEMANAS'] = Semanas_Oper['SEMANAS'].dt.strftime('%d/%m/%Y')
# Semanas_Oper
#       SEMANAS
# 1  05/03/2020
# 2  12/03/2020
# 3  19/03/2020
# 4  26/03/2020
# 0  02/04/2020

Примечание @ комментарий: для сортировки df по столбцу semanas используйте sort_values - но убедитесь, что сортируете по объектам datetime, а не по строкам .

...