nikita.kopot 25 декабря 2021

🐼 Как правильно сортировать данные в Pandas

Из этой заметки вы узнаете, как сортировать датафреймы Pandas по нескольким столбцам с помощью метода sort_values, а также по индексам методом sort_index.
🐼 Как правильно сортировать данные в Pandas

Датафрейм – это двумерная структура данных, очень похожая на таблицу, которая состоит из рядов и столбцов. В Pandas мы можем сортировать фрейм данных по одному столбцу, либо по нескольким столбцам.

Мы будем работать с набором данных Kaggle, а именно со статистикой трендовых видеороликов YouTube. Скачаем и откроем файлUSvideos.csv:

        df = pd.read_csv('USvideos.csv')
df.columns
    

Датафрейм включает следующие столбцы:

🐼 Как правильно сортировать данные в Pandas

Метод sort_values применяется для сортировки датафрейма и выглядит следующим образом:

        DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
    

Далее мы подробно разберем, за что отвечает каждый из вышеперечисленных параметров.

🤖 Библиотека data scientist’а
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека Data scientist’а»
🤖🎓 Библиотека Data Science для собеса
Подтянуть свои знания по DS вы можете на нашем телеграм-канале «Библиотека Data Science для собеса»
🤖🧩 Библиотека задач по Data Science
Интересные задачи по DS для практики можно найти на нашем телеграм-канале «Библиотека задач по Data Science»

Сортировка по одному столбцу

Чтобы отсортировать датафрейм по одному столбцу, укажем имя столбца с помощью параметра by. В качестве примера возьмем столбец likes, который выводит количество набранных лайков.

        df.sort_values(by='likes', ascending=False)
    

Здесь:

by – определяет список столбцов для сортировки.

ascending – задает порядок сортировки.

sort_values по умолчанию сортирует по возрастанию.

Чтобы задать порядок «по убыванию», следует указать ascending=False.

🐼 Как правильно сортировать данные в Pandas

Сортировка по нескольким столбцам

Чтобы отсортировать датафрейм по нескольким столбцам, методу sort_values нужно через запятую указать имена столбцов, которые мы собираемся использовать.

Давайте отсортируем датафрейм по показателям likes и dislikes, то есть найдем видео с наибольшим числом лайков и дизлайков.

В параметре ascending порядок сортировки для столбцов также указывается через запятую, что позволяет задавать разный порядок сортировки для разных столбцов в датафрейме.

        df.sort_values(['likes','dislikes'], ascending=[False, False])
    

Подробнее про параметры

Параметр kind позволяет выбрать алгоритм сортировки: quicksort (Быстрая сортировка), mergesort (Сортировка слиянием) или heapsort (Пирамидальная сортировка). По умолчанию используется алгоритм quicksort.

        df.sort_values('likes', ascending=False, kind="mergesort")
    

Inplace-сортировка (на месте) по умолчанию отключена. Для включения inplace-сортировки используем параметр inplace:

        df.sort_values('likes', ascending=False, kind="mergesort", inplace=True)
    

С помощью параметра key мы можем применить любую функцию к данным еще до операции сортировки. Вместо функции также может быть lambda-функция.

        df.sort_values(by='title', key=lambda x: x.str.lower())
    

Метод sort_index сортирует датафрейм по индексам строк. Давайте еще раз взглянем на наш датафрейм:

        sdf = df.sort_values(by='likes', ascending=False)
    
🐼 Как правильно сортировать данные в Pandas

Когда мы сортируем датафрейм, используя метод sort_values, Pandas учитывает столбец, ответственный за сортировку. Чтобы отсортировать датафрейм sdf по индексу строк, воспользуемся методом sort_index:

        sdf.sort_index()
    
🐼 Как правильно сортировать данные в Pandas

Чтобы отсортировать датафрейм по меткам столбцов, присвоим параметру axis значение 1:

        sdf.sort_index(axis=1)
    
🐼 Как правильно сортировать данные в Pandas
***

В этой заметке мы:

  • научились сортировать датафрейм по одному и нескольким значениям;
  • узнали, как работают методы sort_values() и sort_index().

Материалы по теме

Источники

Комментарии

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ