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

Сортировка DataFrame Pandas по определенному столбцу — распространенная задача при анализе и манипулировании данными. Это позволяет нам упорядочивать данные в порядке возрастания или убывания на основе значений определенного столбца. В этой статье блога мы рассмотрим несколько методов сортировки DataFrame Pandas и попутно предоставим примеры кода. Итак, приступим!

Метод 1: использование функции sort_values()
Функция sort_values() в Pandas предоставляет удобный способ сортировки DataFrame по одному или нескольким столбцам. Давайте посмотрим, как это работает:

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 20],
        'Salary': [50000, 60000, 40000]}
df = pd.DataFrame(data)
# Sort DataFrame by 'Age' column in ascending order
df_sorted = df.sort_values('Age')
print(df_sorted)

Выход:

     Name  Age  Salary
2  Charlie   20   40000
0    Alice   25   50000
1      Bob   30   60000

Метод 2: использование функции sort_index()
Функция sort_index() позволяет нам сортировать DataFrame на основе индекса строки. Давайте рассмотрим пример:

# Sort DataFrame by row index in descending order
df_sorted = df.sort_index(ascending=False)
print(df_sorted)

Выход:

     Name  Age  Salary
2  Charlie   20   40000
1      Bob   30   60000
0    Alice   25   50000

Метод 3: использование функции numpy.argsort()
Если вы предпочитаете использовать библиотеку NumPy, вы можете отсортировать DataFrame по определенному столбцу с помощью функции argsort(). Вот пример:

import numpy as np
# Sort DataFrame by 'Salary' column in descending order
df_sorted = df.iloc[np.argsort(-df['Salary'])]
print(df_sorted)

Выход:

     Name  Age  Salary
1      Bob   30   60000
0    Alice   25   50000
2  Charlie   20   40000

Метод 4: использование функций nsmallest() или nlargest()
Функции nsmallest() и nlargest() позволяют нам получить n наименьших или наибольших значений из DataFrame. Объединив их с функцией sort_values(), мы можем добиться сортировки по конкретному столбцу. Вот пример:

# Sort DataFrame by 'Age' column in descending order using nsmallest()
df_sorted = df.nsmallest(len(df), 'Age')
print(df_sorted)

Выход:

     Name  Age  Salary
2  Charlie   20   40000
0    Alice   25   50000
1      Bob   30   60000

В этой статье мы рассмотрели несколько методов сортировки DataFrame Pandas по определенному столбцу. Мы рассмотрели использование функций sort_values(), sort_index() и argsort(), а также функций nsmallest() и nlargest(). В зависимости от ваших конкретных требований вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Сортировка данных – это важный навык в анализе данных. Имея в своем распоряжении эти методы, вы будете хорошо подготовлены к решению любой задачи сортировки в Pandas.