Pandas: как сортировать DataFrame по алфавиту


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

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

#sort A to Z
df.sort_values('column1')

#sort Z to A
df.sort_values('column1', ascending= False )

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

#sort by column1 from Z to A, then by column2 from A to Z
df.sort_values(['column1', 'column2'], ascending=( False , True ))

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

Пример 1. Сортировка по одному столбцу в алфавитном порядке

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Spurs', 'Lakers', 'Nuggets', 'Hawks'],
 'points': [120, 108, 99, 104, 115]})

#view DataFrame
print(df)

 team points
0 Mavs 120
1 Spurs 108
2 Lakers 99
3 Nuggets 104
4 Hawks 115

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

#sort by team name A to Z
df_sorted = df.sort_values('team')

#view sorted DataFrame
print(df_sorted)

 team points
4 Hawks 115
2 Lakers 99
0 Mavs 120
3 Nuggets 104
1 Spurs 108

Обратите внимание, что строки теперь отсортированы по названию команды от А до Я.

Мы также можем отсортировать от Z до A :

#sort by team name Z to A
df_sorted = df.sort_values('team', ascending= False )

#view sorted DataFrame
print(df_sorted)

 team points
1 Spurs 108
3 Nuggets 104
0 Mavs 120
2 Lakers 99
4 Hawks 115

И мы также могли бы использовать функцию reset_index() для сброса значений индекса в отсортированном DataFrame:

#sort by team name A to Z and reset index
df_sorted = df.sort_values('team'). reset_index(drop= True )

#view sorted DataFrame
print(df_sorted)

 team points
0 Hawks 115
1 Lakers 99
2 Mavs 120
3 Nuggets 104
4 Spurs 108

Пример 2. Сортировка по нескольким столбцам в алфавитном порядке

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'conference': ['West', 'West', 'West', 'East', 'East'],
 'team': ['Mavs', 'Spurs', 'Lakers', 'Heat', 'Hawks'],
 'points': [120, 108, 99, 104, 115]})

#view DataFrame
print(df)

 conference team points
0 West Mavs 120
1 West Spurs 108
2 West Lakers 99
3 East Heat 104
4 East Hawks 115

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

#sort by conference name A to Z, then by team name Z to A
df_sorted = df.sort_values(['conference', 'team'], ascending=( True , False ))

#view sorted DataFrame
print(df_sorted)

 conference team points
3 East Heat 104
4 East Hawks 115
1 West Spurs 108
0 West Mavs 120
2 West Lakers 99

Строки сортируются по названию конференции от А до Я, а затем по названию команды от Я до А.

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

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.