A função do pandas sort_values()
classifica um dataframe em ordem crescente ou decrescente da coluna passada. É diferente da função sorted
do Python, uma vez que não pode classificar um dataframe e uma coluna particular não pode ser selecionada.
Vamos discutir sobre Dataframe.sort_values()
Classificação de parâmetro único:
Sintaxe:
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’)
Cada parâmetro tem alguns valores padrão, exceto o parâmetro ‘by
’.
Parâmetros:
by: Único/Lista de nomes de coluna pelos quais classificar o dataframe.
axis: 0 ou 'índice' para linhas e 1 ou 'colunas' para coluna.
ascending: valor booleano que classifica o dataframe em ordem crescente seTrue
.
inplace: valor booleano. Faz as alterações no próprio dataframe transmitido, seTrue
.
kind: String que pode ter três entradas (‘quicksort
’, ‘mergesort
’ ou ‘heapsort
’) de algoritmo usado para ordenar o dataframe.
na_position: recebe duas entradas de string ‘last
’ ou ‘first
’ para definir a posição dos valores nulos. O padrão é ‘last
’.
Tipo de devolução:
Retorna um dataframe classificado com as mesmas dimensões do dataframe do chamador da função.
Para obter o link para o arquivo CSV usado no código, clique aqui.
Exemplo #1: classificação por nome
No exemplo a seguir, um dataframe é criado a partir do arquivo csv e o dataframe é classificado em ordem crescente de nomes de jogadores.
Antes de classificar:
# importando o modulo pandas import pandas as pd # criando um dataframe a partir # de um arquivo csv data = pd.read_csv("nba.csv") print(data.head(10))
Resultado:
Name Team Number Position Age Height Weight College Salary 0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0 1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0 2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN 3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0 4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0 5 Amir Johnson Boston Celtics 90.0 PF 29.0 6-9 240.0 NaN 12000000.0 6 Jordan Mickey Boston Celtics 55.0 PF 21.0 6-8 235.0 LSU 1170960.0 7 Kelly Olynyk Boston Celtics 41.0 C 25.0 7-0 238.0 Gonzaga 2165160.0 8 Terry Rozier Boston Celtics 12.0 PG 22.0 6-2 190.0 Louisville 1824360.0 9 Marcus Smart Boston Celtics 36.0 PG 22.0 6-4 220.0 Oklahoma State 3431040.0
Depois de classificar:
import pandas as pd data = pd.read_csv("nba.csv") # ordenando o dataframe por nome # em ordem crecente data.sort_values("Name", axis = 0, ascending = True, inplace = True, na_position ='last') print(data.head(10))
Name Team Number Position Age Height Weight College Salary 152 Aaron Brooks Chicago Bulls 0.0 PG 31.0 6-0 161.0 Oregon 2250000.0 356 Aaron Gordon Orlando Magic 0.0 PF 20.0 6-9 220.0 Arizona 4171680.0 328 Aaron Harrison Charlotte Hornets 9.0 SG 21.0 6-6 210.0 Kentucky 525093.0 404 Adreian Payne Minnesota Timberwolves 33.0 PF 25.0 6-10 237.0 Michigan State 1938840.0 312 Al Horford Atlanta Hawks 15.0 C 30.0 6-10 245.0 Florida 12000000.0 330 Al Jefferson Charlotte Hornets 25.0 C 31.0 6-10 289.0 NaN 13500000.0 428 Al-Farouq Aminu Portland Trail Blazers 8.0 SF 25.0 6-9 215.0 Wake Forest 8042895.0 368 Alan Anderson Washington Wizards 6.0 SG 33.0 6-6 220.0 Michigan State 4000000.0 135 Alan Williams Phoenix Suns 15.0 C 23.0 6-8 260.0 UC Santa Barbara 83397.0 444 Alec Burks Utah Jazz 10.0 SG 24.0 6-6 214.0 Colorado 9463484.0
Conforme mostrado acima, a coluna de índice agora está confusa, pois o dataframe é classificado por Nome.
Exemplo #2: Mudança de posição de valores nulos
Nos dados fornecidos, existem muitos valores nulos em diferentes colunas que são colocados no último por padrão. Neste exemplo, o dataframe é classificado de acordo com a coluna 'Salary' e os valores nulos são mantidos no topo.
import pandas as pd data = pd.read_csv("nba.csv") # Ordenando o dataframe pela coluna 'Salary' data.sort_values("Salary", axis = 0, ascending = True, inplace = True, na_position ='first') print(data.head(15))
Conforme mostrado abaixo, os valores NaN
estão no topo e depois disso vem o valor classificado de Salário.
Resultado:
Name Team Number Position Age Height Weight College Salary 2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN 46 Elton Brand Philadelphia 76ers 42.0 PF 37.0 6-9 254.0 Duke NaN 171 Dahntay Jones Cleveland Cavaliers 30.0 SG 35.0 6-6 225.0 Duke NaN 264 Jordan Farmar Memphis Grizzlies 4.0 PG 29.0 6-2 180.0 UCLA NaN 269 Ray McCallum Memphis Grizzlies 5.0 PG 24.0 6-3 190.0 Detroit NaN 270 Xavier Munford Memphis Grizzlies 14.0 PG 24.0 6-3 180.0 Rhode Island NaN 273 Alex Stepheson Memphis Grizzlies 35.0 PF 28.0 6-10 270.0 USC NaN 350 Briante Weber Miami Heat 12.0 PG 23.0 6-2 165.0 Virginia Commonwealth NaN 353 Dorell Wright Miami Heat 11.0 SF 30.0 6-9 205.0 NaN NaN 397 Axel Toupane Denver Nuggets 6.0 SG 23.0 6-7 210.0 NaN NaN 409 Greg Smith Minnesota Timberwolves 4.0 PF 25.0 6-10 250.0 Fresno State NaN 457 NaN NaN NaN NaN NaN NaN NaN NaN NaN 32 Thanasis Antetokounmpo New York Knicks 43.0 SF 23.0 6-7 205.0 NaN 30888.0 291 Orlando Johnson New Orleans Pelicans 0.0 SG 27.0 6-5 220.0 UC Santa Barbara 55722.0 130 Phil Pressey Phoenix Suns 25.0 PG 25.0 5-11 175.0 Missouri 55722.0
Artigo escrito por Kartikaybhutani e traduzido por Acervo Lima de Python | Pandas Dataframe.sort_values() | Set-1
0 comentários:
Postar um comentário