Предположим, у меня есть фрейм данных со столбцами a
, b
и c
я хочу отсортировать фрейм данных по столбцу b
в порядке возрастания и по столбцу c
в порядке убывания, как мне это сделать?
python
pandas
python-2.7
sorting
data-analysis
Ракеш Адхикешаван
источник
источник
Ответы:
Начиная с версии 0.17.0,
sort
метод устарел в пользуsort_values
.sort
был полностью удален в версии 0.20.0. Аргументы (и результаты) остаются прежними:Вы можете использовать восходящий аргумент
sort
:Например:
Комментарии @renadeen
то есть, если вы хотите повторно использовать df1 как отсортированный DataFrame:
или
источник
sort
метода переменной или добавитьinplace=True
к вызову метода.Начиная с pandas 0.17.0,
DataFrame.sort()
устарела и должна быть удалена в будущей версии pandas. Способ сортировки информационного кадра по его значениям теперьDataFrame.sort_values
Таким образом, ответ на ваш вопрос теперь будет
источник
Для больших фреймов числовых данных вы можете увидеть значительное улучшение производительности с помощью
numpy.lexsort
косвенной сортировки с использованием последовательности ключей:Одна особенность заключается в том, что определенный порядок сортировки с
numpy.lexsort
обратным:(-'b', 'a')
сортировка по серии вa
первую очередь. Мы отрицаем ряд,b
чтобы отразить, что мы хотим этот ряд в порядке убывания.Имейте в виду, что
np.lexsort
сортирует только по числовым значениям, аpd.DataFrame.sort_values
работает со строковыми или числовыми значениями. Использованиеnp.lexsort
со строками даст:TypeError: bad operand type for unary -: 'str'
.источник