Share This
Связаться со мной
Крути в низ
Categories
//🐼 Как правильно сортировать данные в Pandas

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

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

kak pravilno sortirovat dannye v pandas 26a599a - 🐼 Как правильно сортировать данные в Pandas

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

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

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

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

kak pravilno sortirovat dannye v pandas 7faa705 - 🐼 Как правильно сортировать данные в Pandas

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

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

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

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

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

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

Здесь:

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

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

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

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

kak pravilno sortirovat dannye v pandas bdbce97 - 🐼 Как правильно сортировать данные в 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)     

kak pravilno sortirovat dannye v pandas ea592e5 - 🐼 Как правильно сортировать данные в Pandas

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

         sdf.sort_index()     

kak pravilno sortirovat dannye v pandas 251239a - 🐼 Как правильно сортировать данные в Pandas

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

         sdf.sort_index(axis=1)     

kak pravilno sortirovat dannye v pandas 4cbd0f0 - 🐼 Как правильно сортировать данные в Pandas

***

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

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

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

  • Инструменты дата-журналиста #1: Jupyter Notebook и библиотека Pandas
  • Numpy, Pandas, matplotlib – необходимый минимум для старта в Machine Learning
  • Django, Pandas и Chart.js для быстрой панели инструментов

  • 5 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close