Как отсортировать dataframe в python

Сортировка фрейма данных в Python – Шаг за шагом

Эй, читатели! В этой статье мы подробно остановимся на сортировке фрейма данных в Python. Итак, давайте начнем!

Эй, читатели! В этой статье мы подробно остановимся на Сортировке фрейма данных в Python. Итак, давайте начнем!

Сортировка фрейма данных с помощью функции sort_values()

Модуль Python Pandas предоставляет нам различные функции для работы с большими записями данных. Имея дело с записями данных в терминах фреймов данных, мы часто сталкиваемся с ситуациями, когда нам нужно отсортировать данные и представить выходные данные.

Это когда, Питон pandas.dataframe.sort_values() функция входит в картину.

Функция sort_values () сортирует данные в порядке возрастания или убывания настроенным образом.

Давайте теперь сосредоточимся на структуре функции в следующем разделе.

Синтаксис функции sort_values() в Python

Взгляните на приведенный ниже синтаксис!

Давайте теперь сосредоточимся на реализации функции sort_values() в следующем разделе.

Пример кода для сортировки фрейма данных в Python

В приведенном ниже примере мы отсортировали вышеупомянутый фрейм данных по двум столбцам- ” EE ” и “AA”, как показано ниже.

Как видно ниже, фрейм данных сортируется по столбцам ” EE ” и ” AA ” соответственно в порядке возрастания.

Вывод

На этом мы подошли к концу этой темы. Мы поняли функционирование функции sort_values() для сортировки фреймов данных.

Не стесняйтесь комментировать ниже, если у вас возникнут какие-либо вопросы. Для получения дополнительных сообщений, связанных с Python, следите за обновлениями и продолжайте учиться!

Источник

pandas.DataFrame.sort_valuesВ¶

Sort by the values along either axis.

Parameters by str or list of str

Name or list of names to sort by.

if axis is 0 or ‘index’ then by may contain index levels and/or column labels.

if axis is 1 or ‘columns’ then by may contain column levels and/or index labels.

ascending bool or list of bool, default True

Sort ascending vs. descending. Specify list for multiple sort orders. If this is a list of bools, must match the length of the by.

inplace bool, default False

If True, perform operation in-place.

Choice of sorting algorithm. See also numpy.sort() for more information. mergesort and stable are the only stable algorithms. For DataFrames, this option is only applied when sorting on a single column or label.

na_position <‘first’, ‘last’>, default ‘last’

Puts NaNs at the beginning if first ; last puts NaNs at the end.

ignore_index bool, default False

New in version 1.0.0.

Apply the key function to the values before sorting. This is similar to the key argument in the builtin sorted() function, with the notable difference that this key function should be vectorized. It should expect a Series and return a Series with the same shape as the input. It will be applied to each column in by independently.

New in version 1.1.0.

Источник

Основы Pandas №3 // Важные методы форматирования данных

Примечание: это руководство, поэтому рекомендуется самостоятельно писать код, повторяя инструкции!

Merge в pandas («объединение» Data Frames)

В реальных проектах данные обычно не хранятся в одной таблице. Вместо нее используется много маленьких. И на то есть несколько причин. С помощью нескольких таблиц данными легче управлять, проще избегать «многословия», можно экономить место на диске, а запросы к таблицам обрабатываются быстрее.

Как отсортировать dataframe в python

Теперь нужно объединить два эти Data Frames в один. Чтобы получилось нечто подобное:

Как отсортировать dataframe в python

В этой таблице можно проанализировать, например, сколько животных в зоопарке едят мясо или овощи.

Как делается merge?

Как отсортировать dataframe в python

Теперь пришло время метода merge:

Как отсортировать dataframe в python

(А где же все львы? К этому вернемся чуть позже).

Это было просто, не так ли? Но стоит разобрать, что сейчас произошло:

Это то же самое, что и:

Разница будет лишь в порядке колонок в финальной таблице.

Способы объединения: inner, outer, left, right

Базовый метод merge довольно прост. Но иногда к нему нужно добавить несколько параметров.

Один из самых важных вопросов — как именно нужно объединять эти таблицы. В SQL есть 4 типа JOIN.

Как отсортировать dataframe в python

В случае с merge в pandas в теории это работает аналогичным образом.

При выборе INNER JOIN (вид по умолчанию в SQL и pandas) объединяются только те значения, которые можно найти в обеих таблицах. В случае же с OUTER JOIN объединяются все значения, даже если некоторые из них есть только в одной таблице.

Как отсортировать dataframe в python

В этот раз львы и жирафы вернулись. Но поскольку вторая таблица не предоставила конкретных данных, то вместо значения ставится пропуск ( NaN ).

Теперь в таблице есть вся необходимая информация, и ничего лишнего. how = ‘left’ заберет все значения из левой таблицы ( zoo ), но из правой ( zoo_eats ) использует только те значения, которые есть в левой.

Еще раз взглянем на типы объединения:

Как отсортировать dataframe в python

Примечание: «Какой метод merge является самым безопасным?» — самый распространенный вопрос. Но на него нет однозначного ответа. Нужно решать в зависимости от конкретной задачи.

Merge в pandas. По какой колонке?

Например, последний merge мог бы выглядеть следующим образом:

Примечание: в примере pandas автоматически нашел ключевые колонки, но часто бывает так, что этого не происходит. Поэтому о left_on и right_on не стоит забывать.

Merge в pandas — довольно сложный метод, но остальные будут намного проще.

Сортировка в pandas

Сортировка необходима. Базовый метод сортировки в pandas совсем не сложный. Функция называется sort_values() и работает она следующим образом:

Как отсортировать dataframe в python

Единственный используемый параметр — название колонки, water_need в этом случае. Довольно часто приходится сортировать на основе нескольких колонок. В таком случае для них нужно использовать ключевое слово by :

Как отсортировать dataframe в python

sort_values сортирует в порядке возрастания, но это можно поменять на убывание:

Как отсортировать dataframe в python

reset_index()

Заметили ли вы, какой беспорядок теперь в нумерации после последней сортировки?

Как отсортировать dataframe в python

Это не просто выглядит некрасиво… неправильная индексация может испортить визуализации или повлиять на то, как работают модели машинного обучения.

Как отсортировать dataframe в python

Можно заметить, что новый DataFrame также хранит старые индексы. Если они не нужны, их можно удалить с помощью параметра drop=True в функции:

Как отсортировать dataframe в python

Fillna

Примечание: fillna — это слова fill( заполнить) и na(не доступно).

Запустим еще раз метод left-merge:

Как отсортировать dataframe в python

Проверьте себя

Примечание: в этом наборе хранятся данные из блога о путешествиях. Загрузить его можно здесь. Или пройти весь процесс загрузки, открытия и установки из первой части руководства pandas.

Набор article_read показывает всех пользователей, которые читают блог, а blog_buy — тех, купил что-то в этом блоге за период с 2018-01-01 по 2018-01-07.

Решение задания №1

Средний доход — 1,0852

Для вычисления использовался следующий код:

Как отсортировать dataframe в python

Примечание: шаги использовались, чтобы внести ясность. Описанные функции можно записать и в одну строку.`

Решение задания №2

Как отсортировать dataframe в python

Найдите топ-3 страны на скриншоте.

Итого

Источник

Pandas Sort — руководство по сортировке данных в Python

Содержание

К концу этого урока вы будете знать, как:

Чтобы понять урок, потребуется базовое знание DataFrames pandas и некоторое представление о чтении данных из файлов.

Начало работы с методами сортировки Pandas ↑

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

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

Подготовка набора данных ↑

В этом уроке будем работать с данными об экономии топлива, собранными Агентством по охране окружающей среды США (EPA) на транспортных средствах, выпущенных в период с 1984 по 2021 год. Набор данных EPA по экономии топлива великолепен, потому что он содержит много различных типов информации, которую вы можете отсортировать, включая текстовую и числовою информацию. Набор данных содержит всего восемьдесят три колонки.

Чтобы продолжить, вам понадобится установленная библиотека Python pandas. Код в этом руководстве был выполнен с использованием pandas 1.2.0 и Python 3.9.1.

Примечание. Полный набор данных по экономии топлива составляет около 18 МБ. Чтение всего набора данных в память может занять минуту или две. Ограничение количества строк и столбцов повысит производительность, но все равно потребуется несколько секунд, прежде чем данные будут загружены.

Для анализа будем просматривать данные о MPG (миля на галлон) для транспортных средств по маркам, моделям, годам и другим характеристикам транспортных средств. Можно указать, какие столбцы следует читать в DataFrame. Для этого урока вам понадобится только часть доступных столбцов. Вот команды для чтения соответствующих столбцов набора данных по экономии топлива в DataFrame и для отображения первых пяти строк:

Индекс строки DataFrame обведен синим на рисунке выше. Индекс не считается столбцом, и обычно у вас есть только один индекс строки. Индекс строки можно рассматривать как номера строк, которые начинаются с нуля.

Сортировка фрейма данных по одному столбцу ↑

Сортировка по столбцу в порядке возрастания ↑

Изменение порядка сортировки ↑

Выбор алгоритма сортировки ↑

Примечание. В pandas kind игнорируется при сортировке более чем по одному столбцу или метке.

Когда вы сортируете несколько записей с одним и тем же ключом, стабильный алгоритм сортировки сохранит исходный порядок этих записей после сортировки. По этой причине использование стабильного алгоритма сортировки необходимо, если вы планируете выполнять несколько сортировок.

Сортировка фрейма данных по нескольким столбцам ↑

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

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

Теперь DataFrame отсортирован в порядке возрастания по марке. Если есть две или более одинаковых марок, то они сортируются по моделям. Порядок, в котором имена столбцов указаны в списке, соответствует тому, как будет сортироваться DataFrame.

Изменение порядка сортировки столбцов ↑

Поскольку при сортировке используется несколько столбцов, можно указать порядок сортировки столбцов. Если необходимо изменить логический порядок сортировки из предыдущего примера, то можно изменить порядок имен столбцов в списке, который передаётся параметру by :

Сортировка по нескольким столбцам в порядке убывания ↑

До этого момента мы сортировали несколько столбцов только в порядке возрастания. В следующем примере выполним сортировку в порядке убывания по столбцам марки и модели. Для сортировки в порядке убывания установите значение ascending в False :

Значения в столбце make указаны в обратном алфавитном порядке, а значения в столбце model — в порядке убывания для всех автомобилей той же марки. Для текстовых данных сортировка чувствительна к регистру, то есть текст с заглавной буквы будет отображаться первым в порядке возрастания и последним в порядке убывания.

Сортировка по нескольким столбцам с разными порядками сортировки ↑

Сортировка фрейма данных по его индексу ↑

Сортировка по индексу в порядке возрастания ↑

Сортировка по индексу в порядке убывания ↑

Изучение расширенных концепций сортировки индекса ↑

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

Сортировка столбцов фрейма данных ↑

Работа с осью DataFrame ↑

Использование меток столбцов для сортировки ↑

Столбцы вашего DataFrame сортируются слева направо в возрастающем алфавитном порядке. Если вы хотите отсортировать столбцы в порядке убывания, вы можете использовать ascending = False :

Работа с отсутствующими данными при сортировке в Pandas ↑

Вот как выглядит DataFrame при сортировке по столбцу с отсутствующими данными:

Теперь любые недостающие данные из столбцов, которые использовались для сортировки, будут отображаться в верхней части DataFrame. Это особенно полезно при начале анализа своих данные, когда нет уверенности в том, есть ли пропущенные значения.

Использование методов сортировки для изменения фрейма данных ↑

Заключение ↑

Эти методы — значимая часть навыков анализа данных. Они помогут вам построить прочный фундамент, на котором можно выполнять более сложные операции с pandas. Если вы хотите увидеть несколько примеров более продвинутого использования методов сортировки pandas, документация pandas — отличный ресурс.

Источник

Как отсортировать фрейм данных Панд по дате

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

Как отсортировать фрейм данных Панд по дате

Вступление

Pandas-чрезвычайно популярная библиотека для обработки и анализа данных. Это инструмент для загрузки и анализа наборов данных для многих.

Давайте начнем с создания простого DataFrame с несколькими датами:

По умолчанию наши выходные данные сортируются по индексу DataFrame s:

Орлиный глаз может заметить, что у Иоанна и Павла одна и та же дата рождения-это нарочно, как мы сейчас увидим.

Преобразование строк в Datetime в Pandas DataFrame

У нас есть ввод Дата рождения в формате даты, и он, по-видимому, отформатирован как таковой. Однако первое, что нам нужно сделать, это убедиться, что Панды распознают и понимают, что эта дата на самом деле является датой.

Тип данных каждого значения присваивается автоматически, исходя из того, как оно выглядит. 60 будет присвоен целочисленный тип, в то время как John будет присвоен строковый тип. Давайте проверим текущий тип данных каждого столбца:

Это дает нам наш список типов данных:

Мы видим, что нашему столбцу Дата рождения по умолчанию присвоен базовый строковый тип объекта. Однако для того, чтобы правильно сортировать, анализировать или манипулировать нашими датами, нам нужно, чтобы Панды распознали, что этот столбец содержит даты.

Давайте явно изменим тип данных в нашем столбце Date of Birth с object type на datetime type.

Самый простой способ сделать это-использовать функцию to_datetime() :

Теперь, если мы проверим наш вывод:

Кроме того, мы можем вручную указать тип данных нашего столбца, если, конечно, мы знаем, какой тип данных мы хотим, чтобы он был:

Хотя оба этих метода дают один и тот же результат, метод to_date time() является предпочтительным, поскольку он был явно разработан для этой цели.

Сортировка фрейма данных по дате в Pandas

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

Метод sort_values() по умолчанию сортирует данные в порядке возрастания. Для дат это будет означать, что первая или самая ранняя по порядку появится в верхней части списка:

Запуск этого кода приводит к:

Поскольку у нас Джон и Генри имеют один и тот же день рождения, порядок основан на их соответствующем индексном номере.

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

Изменение порядка сортировки на нисходящий можно сделать, установив аргумент ascending в значение False при вызове функции sort_values() :

На этот раз мы сортируем наши данные в порядке убывания, то есть последние или самые последние появятся в верхней части нашего списка. Опять же поскольку у Джона и Генри один и тот же день рождения их порядок основан на их индексном номере:

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

Итак, что произойдет, если у нас есть несколько столбцов дат, по которым мы хотим отсортировать данные?

Давайте добавим еще один столбец, связанный с данными, в наш DataFrame и убедимся, что оба наших типа данных назначены правильно:

А теперь давайте проверим, хорошо ли все выглядит:

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

Поскольку этот метод по умолчанию имеет порядок возрастания, наш вывод будет следующим:

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

Как и при сортировке по одному столбцу, мы можем изменить порядок сортировки на убывающий, изменив параметр ascending на False :

Теперь наш вывод в порядке убывания выглядит следующим образом:

Как мы видим, Джон и Генри оба появляются выше в списке, поскольку дни рождения отображаются в порядке убывания. На этот раз, однако, Джон имеет приоритет над Генри из-за его более позднего Начала работы даты.

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

В этом примере предположим, что мы хотим отсортировать наше Начало работы в порядке возрастания, то есть сначала самое длинное служение, но затем их Дату рождения в порядке убывания, то есть самое молодое:

Данные сначала сортируются по Employment Start в порядке возрастания, это имеет приоритет, так как это был первый столбец, переданный в нашем методе. Затем мы сортируем Дату рождения в порядке убывания. Поскольку Дхилан и Джон имеют одну и ту же дату начала работы, Дхилан теперь имеет приоритет, поскольку он моложе Джона:

Вывод

Учитывая популярность библиотеки Pandas, неудивительно, что сортировка данных по столбцам является простым процессом. Мы рассмотрели гибкость использования метода sort_values() в одном и нескольких столбцах, в восходящем, нисходящем и даже переменном порядке. Хотя мы сосредоточились на сортировке по дате, этот метод можно использовать для нескольких типов данных.

Источник

Добавить комментарий

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