Как легко отсортировать фрейм данных по столбцу?
pandas Сортировка: Руководство по сортировке данных в Python
Изучение методов сортировки pandas - отличный способ начать использовать или практиковаться в основах анализа данных с помощью Python. В основном анализ данных выполняется с использованием электронных таблиц, SQL или pandas. Одним из преимуществ использования pandas является его способность обрабатывать большие объемы данных и предоставлять высокопроизводительные возможности манипулирования данными.
В этом руководстве вы узнаете, как использовать .sort_values() и .sort_index(), что позволит вам эффективно сортировать данные в DataFrame.
По завершении этого руководства вы узнаете, как:
- Сортировать DataFrame pandas по значениям одного или нескольких столбцов.
- Изменять порядок сортировки с помощью параметра
ascending
. - Сортировать DataFrame по его индексу с использованием .sort_index().
- Обрабатывать пропущенные данные при сортировке значений.
- Сортировать DataFrame на месте с использованием
inplace
, установленного наTrue
.
Бесплатный бонус: Нажмите здесь, чтобы получить шпаргалку по Python, и изучите основы Python 3, такие как работа с типами данных, словари, списки и функции Python.
Начало работы с методами сортировки pandas
Как быстрое напоминание, DataFrame - это двумерная структура данных, представляющая собой таблицу с индексами строк и столбцов. Он имеет множество встроенных методов, которые облегчают манипуляцию данными в таблице.
Прежде чем приступить к сортировке данных в DataFrame, нам понадобится датасет, который будем использовать для примеров. Давайте подготовим датасет, максимально удобный для работы с сортировкой.
Подготовка датасета
Результат выполнения кода:
Name | Age | Salary |
---|---|---|
John | 25 | 50000 |
Alice | 32 | 80000 |
Bob | 18 | 35000 |
David | 40 | 60000 |
Eve | 29 | 70000 |
Это простой датасет, состоящий из столбцов “Name”, “Age” и “Salary”. Теперь у нас есть данные, с которыми мы можем работать.
Ознакомление с .sort_values()
.sort_values() - функция pandas, позволяющая сортировать значения в DataFrame по одному или нескольким столбцам. По умолчанию сортировка происходит в порядке возрастания.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
1 | Alice | 32 | 80000 |
3 | David | 40 | 60000 |
Мы использовали sort_values() для сортировки данных по столбцу “Age”. Как видно из результата, данные теперь отсортированы по возрастанию значения столбца “Age”.
Ознакомление с .sort_index()
.sort_index() - функция pandas, позволяющая сортировать DataFrame по его индексу. Она может использоваться как для сортировки в порядке возрастания, так и для сортировки в порядке убывания.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
4 | Eve | 29 | 70000 |
3 | David | 40 | 60000 |
2 | Bob | 18 | 35000 |
1 | Alice | 32 | 80000 |
0 | John | 25 | 50000 |
Мы использовали sort_index() для сортировки данных в порядке убывания. Каждая строка перемещается в соответствии с ее индексом.
Сортировка вашего DataFrame по одному столбцу
Сортировка по столбцу в порядке возрастания
Выше мы уже рассмотрели пример с сортировкой данных по столбцу “Age”. Давайте рассмотрим более подробно этот пример.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
1 | Alice | 32 | 80000 |
3 | David | 40 | 60000 |
Мы использовали sort_values() для сортировки данных по столбцу “Age”. По умолчанию данные сортируются в порядке возрастания.
Изменение порядка сортировки
.sort_values() также позволяет изменить порядок сортировки, используя параметр ascending
. По умолчанию ascending=True
, что означает сортировку по возрастанию. Чтобы изменить порядок сортировки на убывающий, установите ascending=False
.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
3 | David | 40 | 60000 |
1 | Alice | 32 | 80000 |
4 | Eve | 29 | 70000 |
0 | John | 25 | 50000 |
2 | Bob | 18 | 35000 |
Выбор алгоритма сортировки
.sort_values() использует алгоритм быстрой сортировки (quicksort) по умолчанию. Однако, если ваш DataFrame содержит большое количество данных и вам требуется оптимизировать производительность, вы можете выбрать другой алгоритм сортировки, такой как сортировка слиянием (mergesort) или сортировка кучей (heapsort).
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
1 | Alice | 32 | 80000 |
3 | David | 40 | 60000 |
Сортировка вашего DataFrame по нескольким столбцам
Сортировка по нескольким столбцам в порядке возрастания
Чтобы отсортировать DataFrame по нескольким столбцам, вы можете передать список столбцов в .sort_values(). Порядок столбцов в списке определяет порядок сортировки. В следующем примере мы сначала сортируем данные по столбцу “Age”, а затем по столбцу “Salary”.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
3 | David | 40 | 60000 |
1 | Alice | 32 | 80000 |
Изменение порядка сортировки столбцов
.sort_values() также позволяет изменять порядок сортировки столбцов, используя параметр ascending
.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
3 | David | 40 | 60000 |
1 | Alice | 32 | 80000 |
4 | Eve | 29 | 70000 |
0 | John | 25 | 50000 |
2 | Bob | 18 | 35000 |
Сортировка по нескольким столбцам в порядке убывания
Вы также можете сортировать DataFrame по нескольким столбцам в порядке убывания, установив ascending
на False
.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
1 | Alice | 32 | 80000 |
3 | David | 40 | 60000 |
Сортировка по нескольким столбцам с разными порядками сортировки
Вы также можете сортировать DataFrame по нескольким столбцам с разными порядками сортировки. В следующем примере мы сортируем данные сначала по столбцу “Age” в порядке возрастания, а затем по столбцу “Salary” в порядке убывания.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
3 | David | 40 | 60000 |
1 | Alice | 32 | 80000 |
Сортировка вашего DataFrame по его индексу
Сортировка по индексу в порядке возрастания
.sort_index() позволяет сортировать DataFrame по его индексу. Используется алгоритм быстрой сортировки (quicksort) по умолчанию.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
0 | John | 25 | 50000 |
1 | Alice | 32 | 80000 |
2 | Bob | 18 | 35000 |
3 | David | 40 | 60000 |
4 | Eve | 29 | 70000 |
Сортировка по индексу в порядке убывания
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
4 | Eve | 29 | 70000 |
3 | David | 40 | 60000 |
2 | Bob | 18 | 35000 |
1 | Alice | 32 | 80000 |
0 | John | 25 | 50000 |
Изучение продвинутых концепций сортировки индексов
.sort_index() также предлагает возможность работать с продвинутыми концепциями индексации:
level
- для многомерного индекса можно указать уровень, по которому осуществляется сортировка.sort_remaining
- если в DataFrame есть иерархический индекс, этот параметр определяет, должны ли оставшиеся уровни индекса быть отсортированы.kind
- можно выбрать алгоритм сортировки: quicksort, mergesort или heapsort.
Сортировка столбцов вашего DataFrame
Работа с осью DataFrame
Сортировка DataFrame по столбцам происходит с помощью параметра axis
. По умолчанию сортировка происходит по строкам (axis=0). Чтобы выполнить сортировку по столбцам, установите axis=1
.
Результат выполнения кода:
Name | Age | Salary |
---|---|---|
John | 25 | 50000 |
Alice | 32 | 80000 |
Bob | 18 | 35000 |
David | 40 | 60000 |
Eve | 29 | 70000 |
Использование меток столбцов для сортировки
Вы также можете использовать метки столбцов для сортировки. Передайте метки столбцов в качестве списка в.sort_values(), а затем установите параметр axis=1
.
Результат выполнения кода:
Salary | Age | Name |
---|---|---|
50000 | 25 | John |
80000 | 32 | Alice |
35000 | 18 | Bob |
60000 | 40 | David |
70000 | 29 | Eve |
Работа с отсутствующими данными при сортировке в Pandas
Понимание параметра na_position в .sort_values()
.sort_values() также позволяет работать с отсутствующими данными при сортировке. Параметр na_position
определяет, в каком порядке будут отображаться отсутствующие данные. По умолчанию na_position='last'
, что означает, что отсутствующие данные будут отображаться в конце отсортированного DataFrame.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
1 | Alice | 32 | 80000 |
3 | David | 40 | 60000 |
Понимание параметра na_position в .sort_index()
.sort_index() также позволяет работать с отсутствующими данными при сортировке. Параметр na_position
определяет, в каком порядке будут отображаться отсутствующие данные. По умолчанию na_position='last'
, что означает, что отсутствующие данные будут отображаться в конце отсортированного DataFrame.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
4 | Eve | 29 | 70000 |
3 | David | 40 | 60000 |
2 | Bob | 18 | 35000 |
1 | Alice | 32 | 80000 |
0 | John | 25 | 50000 |
Использование методов сортировки для изменения вашего DataFrame
Использование .sort_values() на месте
.sort_values() также позволяет изменять DataFrame на месте с помощью параметра inplace
. По умолчанию inplace=False
, что означает, что изменения не вносятся в исходный DataFrame, а новый DataFrame возвращается в качестве результата. Для внесения изменений на месте установите inplace=True
.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
2 | Bob | 18 | 35000 |
0 | John | 25 | 50000 |
4 | Eve | 29 | 70000 |
1 | Alice | 32 | 80000 |
3 | David | 40 | 60000 |
Использование .sort_index() на месте
.sort_index() также позволяет изменять DataFrame на месте с помощью параметра inplace
. По умолчанию inplace=False
, что означает, что изменения не вносятся в исходный DataFrame, а новый DataFrame возвращается в качестве результата. Для внесения изменений на месте установите inplace=True
.
Результат выполнения кода:
Name | Age | Salary | |
---|---|---|---|
4 | Eve | 29 | 70000 |
3 | David | 40 | 60000 |
2 | Bob | 18 | 35000 |
1 | Alice | 32 | 80000 |
0 | John | 25 | 50000 |
Заключение
Мы рассмотрели методы сортировки pandas, которые позволяют эффективно сортировать данные в DataFrame. Мы изучили использование .sort_values() для сортировки данных по одному или нескольким столбцам, а также .sort_index() для сортировки по индексу. Также мы рассмотрели возможность работы с отсутствующими данными при сортировке и использование методов на месте для изменения DataFrame.
Теперь вы можете с легкостью сортировать данные в DataFrame с помощью pandas и использовать эти методы для выполнения анализа данных и других задач, связанных с обработкой больших объемов данных.
Если вы хотите углубить свои знания в сортировке данных с помощью pandas, рекомендуем пройти видео-курс Sorting Data in Python With pandas.
Надеемся, что этот руководство поможет вам стать более уверенным в использовании методов сортировки pandas при работе с данными в Python!