Como usar a classificação de dataframes facilmente?
pandas Sort: Seu Guia para Ordenar Dados no Python
por Spencer Guy (ciência de dados, intermediário)
Introdução
Aprender os métodos de ordenação do pandas é uma ótima maneira de começar ou praticar a realização de análises de dados básicas usando Python. A análise de dados é comumente realizada com planilhas, SQL ou pandas. Uma das grandes vantagens de usar o pandas é que ele pode lidar com uma grande quantidade de dados e oferece recursos de manipulação de dados altamente eficientes.
Neste tutorial, você aprenderá como usar os métodos .sort_values()
e .sort_index()
, que permitirão que você ordene dados de forma eficiente em um DataFrame.
Até o final deste tutorial, você aprenderá a:
- Ordenar um DataFrame do pandas pelos valores de uma ou mais colunas
- Usar o parâmetro
ascending
para alterar a ordem de classificação - Ordenar um DataFrame pelo seu índice usando o método
.sort_index()
- Organizar dados ausentes ao classificar valores
- Ordenar um DataFrame inplace usando
inplace
configurado comoTrue
Para acompanhar este tutorial, você precisará de uma compreensão básica dos DataFrames do pandas e familiaridade com a leitura de dados de arquivos.
Começando com os Métodos de Ordenação do Pandas
Primeiro, vamos importar a biblioteca pandas:
Preparando o Conjunto de Dados
Para fins de demonstração, vamos criar um DataFrame simples com dados fictícios:
Aqui está o DataFrame que criamos:
Nome | Idade | Salário |
---|---|---|
João | 25 | 5000 |
Maria | 40 | 7000 |
Pedro | 30 | 6000 |
Ana | 35 | 5500 |
Familiarizando-se com .sort_values()
O método .sort_values()
é usado para ordenar um DataFrame pelos valores de uma ou mais colunas. Vamos começar ordenando o DataFrame pelos nomes em ordem alfabética:
O DataFrame resultante será o seguinte:
Nome | Idade | Salário |
---|---|---|
Ana | 35 | 5500 |
João | 25 | 5000 |
Maria | 40 | 7000 |
Pedro | 30 | 6000 |
Familiarizando-se com .sort_index()
Se você quiser ordenar o DataFrame pelo índice, pode usar o método .sort_index()
:
Isso retornará o DataFrame original sem modificações no nosso exemplo.
Ordenando Seu DataFrame em uma Coluna
Agora vamos explorar como ordenar um DataFrame com base nos valores de uma única coluna.
Ordenando por uma Coluna em Ordem Ascendente
Para ordenar o DataFrame pela coluna “Idade” em ordem ascendente, faça o seguinte:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
João | 25 | 5000 |
Pedro | 30 | 6000 |
Ana | 35 | 5500 |
Maria | 40 | 7000 |
Alterando a Ordem de Classificação
Por padrão, .sort_values()
classifica em ordem ascendente. No entanto, você também pode classificar em ordem descendente especificando ascending=False
:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
Maria | 40 | 7000 |
Ana | 35 | 5500 |
Pedro | 30 | 6000 |
João | 25 | 5000 |
Escolhendo um Algoritmo de Ordenação
O pandas oferece diferentes algoritmos de ordenação para sort_values()
. Por padrão, o algoritmo “quicksort” é usado, mas você também pode especificar “mergesort” ou “heapsort” usando o parâmetro kind
:
Ordenando Seu DataFrame em Múltiplas Colunas
Agora que você sabe como ordenar um DataFrame por uma única coluna, vamos explorar como ordenar em múltiplas colunas.
Ordenando por Múltiplas Colunas em Ordem Ascendente
Para ordenar o DataFrame primeiro por “Salário” e depois por “Idade” em ordem ascendente, faça o seguinte:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
João | 25 | 5000 |
Ana | 35 | 5500 |
Pedro | 30 | 6000 |
Maria | 40 | 7000 |
Alterando a Ordem de Classificação das Colunas
Você também pode especificar a ordem de classificação das colunas. Vamos ordenar primeiro por “Salário” em ordem descendente e depois por “Idade” em ordem ascendente:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
Maria | 40 | 7000 |
Pedro | 30 | 6000 |
Ana | 35 | 5500 |
João | 25 | 5000 |
Ordenando por Múltiplas Colunas com Diferentes Ordens de Classificação
Você também pode especificar diferentes ordens de classificação para diferentes colunas. Vamos ordenar primeiro por “Salário” em ordem descendente e depois por “Idade” em ordem descendente:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
Maria | 40 | 7000 |
Pedro | 30 | 6000 |
Ana | 35 | 5500 |
João | 25 | 5000 |
Ordenando seu DataFrame pelo Índice
Se você quiser ordenar um DataFrame pelo seu índice, pode usar o método .sort_index()
.
Ordenando pelo Índice em Ordem Ascendente
Para ordenar o DataFrame pelo índice em ordem ascendente, faça o seguinte:
O DataFrame resultante será o mesmo DataFrame original sem modificações no nosso exemplo.
Ordenando pelo Índice em Ordem Descendente
Para ordenar o DataFrame pelo índice em ordem descendente, use o seguinte:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
João | 25 | 5000 |
Pedro | 30 | 6000 |
Maria | 40 | 7000 |
Ana | 35 | 5500 |
Explorando Conceitos Avançados de Index-Sorting
Existem conceitos avançados relacionados à ordenação do índice em um DataFrame que você pode explorar para tarefas mais complexas, como classificação por valores duplicados no índice.
Ordenando as Colunas do seu DataFrame
Até agora, focamos na ordenação com base nos valores das colunas. Agora vamos explorar como ordenar as colunas do DataFrame.
Trabalhando com o eixo do DataFrame
Por padrão, os métodos .sort_values()
e .sort_index()
operam nas linhas do DataFrame. No entanto, se você quiser ordenar as colunas em ordem alfabética, pode especificar axis=1
:
O DataFrame resultante terá as colunas ordenadas pelo nome:
Idade | Nome | Salário |
---|---|---|
25 | João | 5000 |
40 | Maria | 7000 |
30 | Pedro | 6000 |
35 | Ana | 5500 |
Usando Rótulos de Coluna para Classificar
Como alternativa, você também pode usar rótulos de coluna para classificar as colunas em uma ordem específica. Por exemplo, vamos ordenar as colunas da seguinte forma: “Salário”, “Idade” e “Nome”:
O DataFrame resultante terá as colunas na ordem especificada:
Salário | Idade | Nome |
---|---|---|
5000 | 25 | João |
7000 | 40 | Maria |
6000 | 30 | Pedro |
5500 | 35 | Ana |
Lidando com Dados Ausentes ao Ordenar no Pandas
Ao ordenar um DataFrame no pandas, é importante considerar como lidar com dados ausentes.
Entendendo o Parâmetro na_position
em .sort_values()
Por padrão, o método .sort_values()
trata os valores ausentes como os maiores valores possíveis e coloca esses valores faltantes no final da ordenação. Para controlar o comportamento dos valores ausentes, você pode usar o parâmetro na_position
e especificar “first” ou “last”.
Para colocar os valores ausentes no início da ordenação, use:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
NaN | NaN | NaN |
João | 25 | 5000 |
Pedro | 30 | 6000 |
Ana | 35 | 5500 |
Maria | 40 | 7000 |
Entendendo o Parâmetro na_position
em .sort_index()
O método .sort_index()
também aceita o parâmetro na_position
, mas seu comportamento é diferente. Por padrão, os valores ausentes são colocados no final da ordenação quando o índice é classificado. Se você quiser colocar os valores ausentes no início da ordenação do índice, pode fazer o seguinte:
O DataFrame resultante será:
Nome | Idade | Salário |
---|---|---|
NaN | NaN | NaN |
João | 25 | 5000 |
Maria | 40 | 7000 |
Pedro | 30 | 6000 |
Ana | 35 | 5500 |
Usando Métodos de Ordenação para Modificar seu DataFrame
Até agora, discutimos como criar um DataFrame ordenado, mas se você quiser modificar o DataFrame original em vez de criar um DataFrame ordenado separado, pode usar os métodos .sort_values()
e .sort_index()
com o parâmetro inplace
configurado como True
.
Por exemplo, para ordenar o DataFrame pelo “Salário” em ordem descendente e modificar o DataFrame original, faça o seguinte:
Conclusão
Neste tutorial, você aprendeu como usar os métodos .sort_values()
e .sort_index()
do pandas para ordenar dados em um DataFrame. Agora, você deve se sentir mais confiante em realizar operações de ordenação de dados eficientes no pandas, seja por uma coluna, múltiplas colunas, pelo índice ou pelas colunas.
Continue praticando e explorando os recursos do pandas para aprimorar suas habilidades de análise e manipulação de dados.