С помощью Python Sorting Pandas dataframe можно получить случайные результаты - PullRequest
0 голосов
/ 13 сентября 2018

Я наблюдаю некоторые случайные результаты сортировки для кадра данных, который я намерен отсортировать по датам в порядке возрастания.Для нескольких прогонов большинство прогонов возвращает правильные результаты, но для небольшого количества прогонов он возвращает неправильные результаты.

            records_df = records_df.groupby(['YEAR','QUARTER','SUPPLIER_ID']).TRANSACTION_DATES.agg({'TRANSACTION_DATES' : lambda x: list(x.unique())}).reset_index()
            # This now sorts in date order
            records_df.sort_values(by=['TRANSACTION_DATES'])

Для большинства прогонов: TRANSACTION_DATES: [05-Sep-17, 06-Sep-17, 07-Sep-17]

Для некоторых запусков: Неверные результаты:TRANSACTION_DATES: [06-Sep-17, 07-Sep-17, 05-Sep-17]

Почему это так, поскольку я уже навязываю сортировку с использованием sort_values?

1 Ответ

0 голосов
/ 13 сентября 2018

Я думаю, что ваша проблема в том, что вы используете sort_values ​​без присваивания или использования аргумента inplace.Это означает, что ваш отсортированный фрейм данных просто исчезает и нигде не сохраняется.

Так что попробуйте:

records_df = records_df.sort_values(by=['TRANSACTION_DATES'])

или

records_df.sort_values(by=['TRANSACTION_DATES'], inplace=True)

Для справки: документы sort_values:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...