Pandas DataFrame DataFrame.sort_values() Função
-
A sintaxe de
pandas.DataFrame.sort_values()
: -
Códigos de exemplo: Classificar DataFrame com Pandas
pandas.DataFrame.sort_values()
baseado em uma única coluna -
Códigos de exemplo: classificar DataFrame com Pandas
DataFrame.sort_values()
com base em várias colunas -
Códigos de exemplo: classificar DataFrame em ordem decrescente com Pandas
DataFrame.sort_values()
-
Códigos de exemplo: Ordenar DataFrame colocando
NaN
primeiro com PandasDataFrame.sort_values()
Pandas DataFrame.sort_values()
método ordena o chamador DataFrame
em ordem ascendente ou descendente por valores na coluna especificada ao longo de qualquer índice.
A sintaxe de pandas.DataFrame.sort_values()
:
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind="quicksort",
na_position="last",
ignore_index=False,
)
Parâmetros
by |
Nome ou lista de nomes a ordenar por |
axis |
ordenar ao longo da linha (axis=0) ou coluna (axis=1) |
ascending |
ordenar em ordem “ascendente” (ascending=True ) ou “descendente” (ascending=False ) |
inplace |
Booleano. Se True , modificar no local a opção de chamada DataFrame . |
kind |
que algoritmo de ordenação a utilizar. default:quicksort |
na_position |
Colocar o valor NaN no início (na_posição=primeiro ) ou no final (na_posição=último ) |
ignore_index |
Booleano. Se True , os índices do DataFrame original são ignorados. O valor padrão é ‘Falso’, o que significa que os índices são utilizados. Novo na versão 1.0.0 |
Retornar
Se inplace
for True
, ele retorna a classificação DataFrame
; caso contrário, None
.
Códigos de exemplo: Classificar DataFrame com Pandas pandas.DataFrame.sort_values()
baseado em uma única coluna
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'])
print("After Sorting:")
print(sorted_df)
Resultado:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
Date Sales Price
1 April-11 300 1
2 April-12 400 2
5 April-16 300 2
0 April-10 200 3
4 April-14 300 3
3 April-13 200 4
Ordena o DataFrame df
na ordem ascendente (padrão) por valores na coluna Preço
.
Os índices na ordenação DataFrame
mantém o mesmo que na ordenação original DataFrame
.
Se você preferir ter a nova coluna de índice na ordenação DataFrame
, então você poderia definir ignore_index
(introduzido a partir da versão 1.0.0) para ser True
.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]
df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})
print("Before Sorting:")
print(df)
sorted_df = df.sort_values(by=["Price"], ignore_index=True)
print("After Sorting:")
Resultado:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-11 300 1
1 April-12 400 2
2 April-16 300 2
3 April-10 200 3
4 April-14 300 3
5 April-13 200 4
Aqui, utilizamos ignore_index=True
para atribuir novos índices às linhas e ignorar o índice do DataFrame
original.
Códigos de exemplo: classificar DataFrame com Pandas DataFrame.sort_values()
com base em várias colunas
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
df.sort_values(by=['Sales','Price'],
ignore_index=True,
inplace=True)
print("After Sorting:")
print(df)
Resultado:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-10 200 3
1 April-13 200 4
2 April-11 300 1
3 April-16 300 2
4 April-14 300 3
5 April-12 400 2
Aqui, no início, Sales
é classificado primeiro na ordem ascendente, e depois Price
para cada Sales
também é classificado na ordem ascendente.
No df
, 200
é o menor valor da coluna Sales
e 3
é o menor valor da coluna Preço
para o valor de Sales
de 200
.
Portanto, a linha com 200
na coluna Sales
e 3
na coluna Price
vai para o topo.
Devido ao inplace=True
, o DataFrame
original é modificado após chamar a função sort_values()
.
Códigos de exemplo: classificar DataFrame em ordem decrescente com Pandas DataFrame.sort_values()
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Sales'],
ignore_index=True,
ascending=False)
print("After Sorting:")
print(sorted_df)
Resultado:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-12 400 2
1 April-11 300 1
2 April-14 300 3
3 April-16 300 2
4 April-10 200 3
5 April-13 200 4
Ordena o DataFrame df
na ordem decrescente dos valores da coluna Sales
.
O 400
é o maior valor na coluna Sales
; portanto, a entrada vai para o topo, e outras linhas são ordenadas de acordo.
Códigos de exemplo: Ordenar DataFrame colocando NaN
primeiro com Pandas DataFrame.sort_values()
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'],ignore_index=True,na_position='first')
print("After Sorting:")
print(sorted_df)
Resultado:
Before Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-11 300 1.0
2 April-12 400 2.0
3 April-13 200 4.0
4 April-14 300 3.0
5 April-16 300 NaN
After Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-16 300 NaN
2 April-11 300 1.0
3 April-12 400 2.0
4 April-14 300 3.0
5 April-13 200 4.0
Por padrão, os valores NaN
são colocados no final do DataFrame
após a ordenação.
Mas ao definir na_position=first
, podemos colocar os valores NaN
no início de DataFrame
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn