Сортировка Pandas DataFrame: 6 способов с примерами
Сортировка Pandas DataFrame заключается в упорядочивании строк на основе значений одного или нескольких столбцов. Сортировка может быть выполнена, когда нам необходимо определить верхние или нижние значения, что может быть полезно для выбора наиболее достойных точек данных. Сортировка также может быть полезна при работе с данными, основанными на времени, когда мы можем сортировать временные метки, что дает нам возможность проанализировать изменения во времени. Кроме того, мы можем получить более эффективные и точные операции, если сортируем данные перед объединением DataFrame. В общем, сортировка имеет множество вариантов использования.
В этой статье мы рассмотрим 6 способов сортировки Pandas DataFrame в Python.
Методы сортировки Pandas DataFrame
Для сортировки Pandas DataFrame сначала создадим DataFrame, используя CSV-файл.
import pandas as pd df = pd.read_csv('nba_player_stats.csv') df.head()
Здесь мы сначала импортировали pandas как pd, затем создали DataFrame с помощью CSV-файла, имя CSV-файла — nba_player_stats.csv , после чего вывели заголовок DataFrame df.
Выходные данные:

Мы будем использовать метод sort_values() для сортировки DataFrame, и существует шесть способов, с помощью которых мы можем отсортировать приведенный выше Pandas DataFrame, а именно:
- Сортировка DataFrame по одному столбцу
- Постоянная сортировка DataFrame по одному столбцу
- Сортировка DataFrame по нескольким столбцам
- Сортировка DataFrame в порядке убывания
- Сортировка DataFrame путём позиционирования нулевых значений
- Сортировка DataFrame по ключу
1. Сортировка DataFrame по одному столбцу
Мы можем отсортировать DataFrame по одному столбцу с помощью метода sort_values() .
df.sort_values(by='Player').head()
Здесь мы написали df.sort_values(by=’Player’).head() , что означает, что мы указали столбец Player и отсортировали DataFrame df по столбцу Player. После выполнения мы увидели, что DataFrame df отсортирован в алфавитном порядке по столбцу Player.
Выходные данные:

2. Постоянная сортировка DataFrame по одному столбцу
Мы можем сортировать DataFrame по одному столбцу в постоянном режиме, используя тот же метод sort_values() , передав в качестве аргумента inplace=True .
df.sort_values(by='Player', inplace = True, ignore_index=True) df.head()
Здесь мы написали df.sort_values(by=’Player’, inplace = True, ignore_index=True) , что означает, что мы вызвали метод sort_values , в котором мы указали колонку Player, то есть мы отсортировали DataFrame по колонке Player, а затем мы указали inplace = True , что означает постоянную сортировку DataFrame df, и мы также указали ignore_index=True для повторной индексации, поскольку она была неупорядоченной.
После запуска мы увидели, что макет был изменен и DataFrame был отсортирован на основе игроков в алфавитном порядке от A до Z, а также мы увидели, что нам удалось провести повторную индексацию.
Выходные данные:

3. Сортировка DataFrame по нескольким столбцам
Мы также можем отсортировать DataFrame по нескольким столбцам, используя метод sort_values() .
df.sort_values(by=['Team','Player']).head()
Здесь мы написали df.sort_values(by=[‘Team’, ‘Player’]).head() , то есть мы вызвали метод sort_values, в который передали список столбцов Team и Player, что дало нам такой результат, что наш DataFrame был отсортирован сначала по столбцу Team, затем по столбцу Player.
Выходные данные:

4. Сортировка DataFrame в порядке убывания
Мы можем отсортировать DataFrame в порядке убывания, указав ascending=False в методе sort_values() .
df.sort_values(by='Player', ascending=False).head()
Здесь мы написали df.sort_values(by=’Player’, ascending=False).head() , что означает вызов метода sort_values , в котором мы указали сортировку DataFrame по Player, а также указали ascending=False , что отсортировало наш DataFrame в порядке убывания.
Выходные данные:

5. Сортировка DataFrame путем позиционирования нулевых значений
Мы также можем отсортировать DataFrame на основе позиционирования нулевых значений, указав na_position в методе sort_values .
df.sort_values(by='Team', na_position='first').head()
Здесь мы написали df.sort_values(by=’Team’, na_position=’first’).head() , что позволило отсортировать DataFrame df на основе столбца Team, а также указали na_position=’first’ , что позволило перечислить строки с нулевыми значениями первыми.
Выходные данные:

6. Сортировка DataFrame по ключу
Мы можем отсортировать DataFrame по заданному ключу.
df.sort_values(by='Player',key=lambda name: name.str.len()).head()
Здесь мы написали df.sort_values(by=’Player’, key=lambda name: name.str.len()).head() , что означает, что мы взяли для сортировки столбец Player, а затем отсортировали их в зависимости от длины их символов.
Выходные данные:

Итоги
Сортировка очень важна для организации данных, выявления закономерностей и подготовки данных к анализу или визуализации. Когда мы выстраиваем данные в порядке возрастания или убывания, сортировка DataFrame позволяет получить более четкую визуализацию. В этой статье мы рассмотрели шесть способов сортировки фрейма Pandas DataFrame с примерами. Надеемся, что после прочтения этого руководства вы сможете легко сортировать Pandas DataFrame в Python.
Источник:
Pandas: сортировка DataFrame по индексу и столбцу
Вы можете использовать следующий синтаксис для сортировки pandas DataFrame как по индексу, так и по столбцу:
df = df.sort_values (by = ['column_name', 'index'], ascending = [ False , True ])
В следующих примерах показано, как использовать этот синтаксис на практике.
Примеры: сортировка DataFrame как по индексу, так и по столбцу
В следующем коде показано, как отсортировать кадр данных pandas по столбцу с именем points , а затем по столбцу индекса :
import pandas as pd #create DataFrame df = pd.DataFrame().set_index('id') #view first few rows df.head () points assists rebounds id 1 25 5 11 2 15 7 8 3 15 7 10 4 14 9 6 5 20 12 6 #sort by points and then by index df.sort_values (by = ['points', 'id'], ascending = [ False , True ]) points assists rebounds id 8 29 4 12 1 25 5 11 7 25 9 9 5 20 12 6 6 20 9 5 2 15 7 8 3 15 7 10 4 14 9 6
Полученный DataFrame сортируется по количеству очков в порядке убывания, а затем по индексу в порядке возрастания (если два игрока набрали одинаковое количество очков).
Обратите внимание, что если мы не используем возрастающий аргумент, то каждый столбец будет использовать возрастание в качестве метода сортировки по умолчанию:
#sort by points and then by index df.sort_values (by = ['points', 'id']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
Если столбец индекса в настоящее время не имеет имени, вы можете переименовать его, а затем отсортировать соответствующим образом:
#sort by points and then by index df.rename_axis('index'). sort_values (by = ['points', 'id']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
Сортировка DataFrame по столбцу в Pandas
Чтобы отсортировать строки DataFrame по столбцу, используйте метод pandas.DataFrame.sort_values() с аргументом by = column_name. Метод sort_values() не изменяет исходный DataFrame, но возвращает отсортированный.
В этом руководстве мы рассмотрим несколько примеров программ, в которых мы будем сортировать DataFrame в порядке возрастания или убывания.
Пример 1: в возрастающем порядке
Порядок сортировки по умолчанию функции sort_values() – возрастающий. В этом примере мы создадим DataFrame и отсортируем строки по определенному столбцу в порядке возрастания.
import pandas as pd data = #create dataframe df_marks = pd.DataFrame(data) #sort dataframe sorted_df = df_marks.sort_values(by='algebra') print(sorted_df)
name physics chemistry algebra 0 Somu 68 84 78 2 Amol 77 73 82 3 Lini 78 69 87 1 Kiku 74 56 88
Вы можете видеть, что строки отсортированы в порядке возрастания.
Пример 2: в порядке убывания
Чтобы отсортировать в порядке убывания, передайте аргумент ascending = False методу sort_values(). В этом примере мы создадим DataFrame и отсортируем строки по определенному столбцу в порядке убывания.
import pandas as pd data = #create dataframe df_marks = pd.DataFrame(data) #sort dataframe sorted_df = df_marks.sort_values(by='algebra', ascending=False) print(sorted_df)
name physics chemistry algebra 1 Kiku 74 56 88 3 Lini 78 69 87 2 Amol 77 73 82 0 Somu 68 84 78
Вы можете видеть, что строки отсортированы в порядке убывания.
Заключение
В этом руководстве по Pandas мы научились сортировать DataFrame в порядке возрастания и убывания, используя sort_values(), с помощью примеров программ Python.
Как отсортировать фрейм данных Pandas по дате?
DataFrame Pandas в Python определяет двумерную структуру, состоящую из строк и столбцов. Основная особенность панд — более простой способ передачи данных. В Python у нас есть несколько встроенных функций, таких как to_datetime(), sorted(), лямбда и sort_value() для сортировки кадра данных Pandas по дате.
Синтаксис
В примерах используется следующий синтаксис:
to_datetime()
to_datetime() — это встроенная функция Python, которая преобразует строковые даты в объекты даты и времени.
sorted()
Встроенная функция sorted() Python утверждает, что список можно сортировать по заданным итерируемым объектам.
lambda
Эта лямбда-функция в Python известна как анонимная функция. Его можно использовать, когда требуются функциональные объекты. Эта функция управляет основной логической частью программы.
sort_values()
sort_values() — это встроенная функция Python, которая сортирует кадр данных в последовательности возрастания и убывания.
Использование функции sort_values()
В следующем примере мы запустим программу, импортировав модуль pandas, который будет использоваться для работы с Dataframe по дате. Затем создайте переменную d, чтобы определить входной словарь. Затем установите кадр данных с помощью встроенной функции DataFrame() и сохраните его в переменной df. Затем установите формат даты с помощью встроенной функции to_datetime и сохраните его в переменной df[’Date’]. Двигаемся вперед, чтобы инициализировать последнюю переменную с именем Date_result, которая сохраняет значение как df.sort_value(), которая принимает два параметра: «Дата» и по возрастанию=True, чтобы отсортировать кадр данных в порядке возрастания. Наконец, он напечатает результат с помощью переменной Date_result.
Пример
import pandas as pd # Create a sample DataFrame d = < 'Date': ['2023-06-26', '2023-06-27', '2023-06-28', '2023-06-29'], 'Value': [100, 200, 300, 400] ># Set the dataframe for date df = pd.DataFrame(d) # Convert the 'Date' column to datetime format df['Date'] = pd.to_datetime(df['Date']) # Sort the dataframe in ascending order Date_result = df.sort_values('Date', ascending=True) # The final output print("Result of pandas Dataframe by Date:\n", Date_result)
Выход
Result of pandas Dataframe by Date: Date Value 0 2023-06-26 100 1 2023-06-27 200 2 2023-06-28 300 3 2023-06-29 400
Использование функции sorted()
В следующем примере программа использует два основных метода: понимание списка и sorted() в качестве параметра встроенной функции DataFrame() для генерации результата.
Пример
import pandas as pd # Create a sample DataFrame d = < 'Date': ['2023-06-26', '2023-06-27', '2023-06-28', '2023-06-29'], 'Value': [11, 31, 456, 8534] ># Create the dataframe df = pd.DataFrame(d) # Conversion of date into datetime format df['Date'] = pd.to_datetime(df['Date']) # using list comprehension and sorted() res = pd.DataFrame(sorted(df.values, key=lambda x: x[0]), columns=df.columns) # The final output print("Result of pandas Dataframe by Date:\n", res)
Выход
Result of pandas Dataframe by Date: Date Value 0 2023-06-26 11 1 2023-06-27 31 2 2023-06-28 456 3 2023-06-29 8534
Использование параметра inplace в sort_values()
В следующем примере программа использует встроенную функцию to_datetime(), которая принимает параметры как df[‘date’] для установки столбца в формате datetime. Далее он будет использовать встроенную функцию sort_values(), которая принимает два параметра: Date и inplace=true, что означает сортировку Dataframe по дате.
Пример
import pandas as pd # Create a sample DataFrame data = < 'Date': ['2023-06-15', '2023-06-14', '2023-06-17', '2023-06-16'], 'Value': [10, 20, 30, 40] >df = pd.DataFrame(data) # Convert the 'Date' column to datetime format df['Date'] = pd.to_datetime(df['Date']) # Sort the DataFrame by the Date column using the parameter inplace df.sort_values('Date', inplace=True) print(df)
Выход
Date Value 1 2023-06-14 20 0 2023-06-15 10 3 2023-06-16 40 2 2023-06-17 30
Использование функции to_datetime()
В следующем примере мы будем использовать встроенную функцию DataFrame(), которая принимает параметр как переменные данные. Использование этой функции преобразует данные в фрейм данных. Кадр данных обычно создает данные в двухмерном виде. Затем используйте встроенную функцию to_datetime(), которая устанавливает формат заданной входной даты и генерирует результат.
Пример
import pandas as pd # Create a sample DataFrame data = < 'Date': ['2023-06-15', '2023-06-14', '2023-06-17', '2023-06-16'], 'Value': [10, 20, 30, 40], 'Attendance': ['Present', 'Present', 'Absent', 'Absent'] ># Create the dataframe for date df = pd.DataFrame(data) # Convert the 'Date' column to datetime format df['Date'] = pd.to_datetime(df['Date']) print("The Dataframe of Date result:\n", df)
Выход
The Dataframe of Date result: Date Value Attendance 0 2023-06-15 10 Present 1 2023-06-14 20 Present 2 2023-06-17 30 Absent 3 2023-06-16 40 Absent
Заключение
Pandas — это библиотека с открытым исходным кодом, которая представляет собой лучшую библиотеку Python. В этой статье мы обсудили различные методы, в которых используются некоторые встроенные функции, такие как to_datetime(), DataFrame() и т. д., для выполнения конкретных условий и операций. Этот тип программы обычно используется в области науки о данных.
Все права защищены. © Linux-Console.net • 2019-2023