Pandas: як сортувати dataframes за алфавітом


Ви можете використовувати наступні методи для сортування рядків pandas DataFrame за алфавітом:

Спосіб 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

#createDataFrame
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 за назвою команди від А до Я :

 #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

Зауважте, що рядки тепер відсортовано за назвою команди AZ.

Ми також можемо сортувати від Я до А :

 #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

#createDataFrame
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 за назвою конференції від А до Я, а потім за назвою команди від Я до А:

 #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

Рядки сортуються за назвою конференції AZ, а потім за назвою команди ZA.

Примітка . Повну документацію щодо функції sort_values() pandas можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Панди: як сортувати за датою
Pandas: як сортувати стовпці за назвою
Pandas: як сортувати як за індексом, так і за стовпцем

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *