Panda DataFrame Конвертирует строку в дату, а затем сортирует, приносит ошибку - PullRequest
1 голос
/ 10 марта 2020

У меня есть столбец со строками, который должен быть преобразован в datetime (spani sh формат даты)

>>> df['Date'].head()

0    31/10/2019
1    31/10/2019
2    30/10/2019
3    30/10/2019
4    29/10/2019
Name: Date, dtype: object

Convert

>>>pd.to_datetime(df['Date'], dayfirst = True)
>>>df['Date'].head()
0   2019-10-31
1   2019-10-31
2   2019-10-30
3   2019-10-30
4   2019-10-29
Name: Date, dtype: datetime64[ns]

И теперь я хочу отсортировать его по дата, и выходные данные странным образом преобразуются в:

>>>df['Date'] =df.sort_values(by=['Date'], ascending = True)
>>>df['Date'].head()
0    9443248_19
1    9443205_19
2    9441864_19
3    9441809_19
4    9440310_19
Name: Date, dtype: object

Любая подсказка, что здесь произошло? Почему тип преобразуется обратно в объект?

1 Ответ

0 голосов
/ 10 марта 2020

убедитесь, что ваш столбец «Дата» сначала преобразован в datetime, затем сортировка должна работать нормально:

import pandas as pd

df = pd.DataFrame({'Date': ['31/10/2019', '31/10/2019', '30/10/2019', '30/10/2019', '29/10/2019']})

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

df.sort_values(by='Date', ascending=True, inplace=True)
# df['Date']
# 4   2019-10-29
# 2   2019-10-30
# 3   2019-10-30
# 0   2019-10-31
# 1   2019-10-31
# Name: Date, dtype: datetime64[ns
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...