Вы можете использовать следующие методы для сортировки строк кадра данных 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: как сортировать по индексу и столбцу