dt.strftime()
отменяет преобразование даты и времени и возвращает вас к строкам. Если вы выполните сортировку по этому вопросу, вы останетесь с лексикографической сортировкой, а не с тем, что вы хотите, учитывая, что ваш формат '%d/%m/%Y'
(было бы хорошо с '%Y/%m/%d'
).
Когда работает с датами в pandas вы должны сохранить дату и время64 [нс] dtype . Это самый простой способ выполнить все операции с датой и временем. Используйте .strftime
только тогда, когда вам нужно перейти к какой-либо другой библиотеке или выходному файлу, для которых требуется очень специфический c формат строки.
df['SEMANAS'] = pd.to_datetime(df['SEMANAS'], format='%d%m%Y')
df.dtypes
#SEMANAS datetime64[ns]
#HIDROLOGICAS object
#METEOROLOGICAS object
df = df.sort_values('SEMANAS')
# SEMANAS HIDROLOGICAS METEOROLOGICAS
#1 2020-03-05 86.91690962099126 77.01136731748973
#2 2020-03-12 87.31778425655976 77.24180581323434
#3 2020-03-19 59.2201166180758 54.57343110404338
#4 2020-03-26 32.39795918367347 29.049238743116323
#0 2020-04-02 36.00583090379008 31.284418529316522