🐼 Как правильно сортировать данные в Pandas
Из этой заметки вы узнаете, как сортировать датафреймы Pandas по нескольким столбцам с помощью метода sort_values, а также по индексам методом sort_index.
Датафрейм – это двумерная структура данных, очень похожая на таблицу, которая состоит из рядов и столбцов. В Pandas мы можем сортировать фрейм данных по одному столбцу, либо по нескольким столбцам.
Мы будем работать с набором данных Kaggle, а именно со статистикой трендовых видеороликов YouTube. Скачаем и откроем файлUSvideos.csv
:
Датафрейм включает следующие столбцы:
Метод sort_values
применяется для сортировки датафрейма и выглядит следующим образом:
Далее мы подробно разберем, за что отвечает каждый из вышеперечисленных параметров.
Сортировка по одному столбцу
Чтобы отсортировать датафрейм по одному столбцу, укажем имя столбца с помощью параметра by
. В качестве примера возьмем столбец likes
, который выводит количество набранных лайков.
Здесь:
by
– определяет список столбцов для сортировки.
ascending
– задает порядок сортировки.
sort_values
по умолчанию сортирует по возрастанию.
Чтобы задать порядок «по убыванию», следует указать ascending=False
.
Сортировка по нескольким столбцам
Чтобы отсортировать датафрейм по нескольким столбцам, методу sort_values
нужно через запятую указать имена столбцов, которые мы собираемся использовать.
Давайте отсортируем датафрейм по показателям likes
и dislikes
, то есть найдем видео с наибольшим числом лайков и дизлайков.
В параметре ascending
порядок сортировки для столбцов также указывается через запятую, что позволяет задавать разный порядок сортировки для разных столбцов в датафрейме.
Подробнее про параметры
Параметр kind
позволяет выбрать алгоритм сортировки: quicksort
(Быстрая сортировка), mergesort
(Сортировка слиянием) или heapsort
(Пирамидальная сортировка). По умолчанию используется алгоритм quicksort
.
Inplace-сортировка (на месте) по умолчанию отключена. Для включения inplace-сортировки используем параметр inplace
:
С помощью параметра key
мы можем применить любую функцию к данным еще до операции сортировки. Вместо функции также может быть lambda-функция.
Метод sort_index
сортирует датафрейм по индексам строк. Давайте еще раз взглянем на наш датафрейм:
Когда мы сортируем датафрейм, используя метод sort_values
, Pandas учитывает столбец, ответственный за сортировку. Чтобы отсортировать датафрейм sdf
по индексу строк, воспользуемся методом sort_index
:
Чтобы отсортировать датафрейм по меткам столбцов, присвоим параметру axis
значение 1
:
В этой заметке мы:
- научились сортировать датафрейм по одному и нескольким значениям;
- узнали, как работают методы
sort_values()
иsort_index()
.
Материалы по теме
- Инструменты дата-журналиста #1: Jupyter Notebook и библиотека Pandas
- Numpy, Pandas, matplotlib – необходимый минимум для старта в Machine Learning
- Django, Pandas и Chart.js для быстрой панели инструментов