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 для быстрой панели инструментов

  • 4 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