Как сортировать по нескольким столбцам в Pandas (с примерами)


Вы можете использовать следующий базовый синтаксис для сортировки кадра данных pandas по нескольким столбцам:

df = df.sort_values(['column1', 'column2'], ascending=( False , True ))

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: сортировка по нескольким столбцам в Pandas

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [14, 20, 9, 20, 25, 29, 20, 25],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

 points assists rebounds
0 14 5 11
1 20 7 8
2 9 7 10
3 20 9 6
4 25 12 6
5 29 9 5
6 20 9 9
7 25 4 12

Мы можем использовать следующий синтаксис для сортировки строк DataFrame по возрастанию точек , а затем по убыванию:

#sort by points ascending, then assists ascending
df = df.sort_values(['points', 'assists'])

#view updated DataFrame
df

 points assists rebounds
2 9 7 10
0 14 5 11
1 20 7 8
3 20 9 6
6 20 9 9
7 25 4 12
4 25 12 6
5 29 9 5

Обратите внимание, что строки отсортированы по возрастанию баллов (от меньшего к большему), а затем по возрастанию ассистентов .

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

#sort by points descending, then assists ascending
df = df.sort_values(['points', 'assists'], ascending = ( False , True )))

#view updated DataFrame
df

 points assists rebounds
5 29 9 5
7 25 4 12
4 25 12 6
1 20 7 8
3 20 9 6
6 20 9 9
0 14 5 11
2 9 7 10

Обратите внимание, что строки отсортированы по убыванию точек (от большего к меньшему), а затем по возрастанию .

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

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

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

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