Como usar o pandas para classificar uma coluna
pandas Sort: Guia para Classificar Dados no Python
por Spencer Guy 0 Comentários ciência de dados intermediário
Aprender os métodos de classificação do pandas é uma ótima maneira de começar ou praticar a análise básica de dados usando Python. A análise de dados geralmente é feita 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 com desempenho altamente eficiente.
Neste tutorial, você aprenderá a usar .sort_values()
e .sort_index()
, o que permitirá classificar os dados de forma eficiente em um DataFrame.
Ao final deste tutorial, você saberá como:
- Classificar um DataFrame do pandas pelos valores de uma ou mais colunas
- Usar o parâmetro
ascending
para alterar a ordem de classificação - Classificar um DataFrame pelo seu
índice
usando.sort_index()
- Organizar dados ausentes enquanto classifica os valores
- Classificar um DataFrame no local usando
inplace
definido comoTrue
Para acompanhar este tutorial, você precisa ter uma compreensão básica de DataFrames do pandas e alguma familiaridade com a leitura de dados de arquivos.
Bônus Gratuito: Clique aqui para obter um Cheat Sheet do Python e aprender o básico do Python 3, como trabalhar com tipos de dados, dicionários, listas e funções do Python.
Começando com os Métodos de Classificação do Pandas
Como lembrete rápido, um DataFrame do pandas é uma estrutura de dados bidimensional que pode ser pensada como uma tabela com linhas e colunas. Os métodos .sort_values()
e .sort_index()
podem ser aplicados a um DataFrame do pandas para classificar os dados dentro dele.
Existem várias maneiras de classificar um DataFrame no pandas, dependendo dos seus requisitos. Neste tutorial, abordaremos as seguintes abordagens:
- Classificar um DataFrame em colunas individuais
- Classificar um DataFrame em várias colunas
- Classificar um DataFrame pelo seu índice
- Classificar as colunas de um DataFrame
Agora, vamos começar classificando um DataFrame por colunas individuais.
Preparando o Conjunto de Dados
Primeiro, vamos criar um DataFrame simples para fins de demonstração:
A saída será:
Agora temos um DataFrame com três colunas: “Name”, “Age” e “City”. Vamos usar as colunas “Age” e “City” para fins de classificação.
Familiarizando-se com .sort_values()
O método .sort_values()
é usado para classificar um DataFrame do pandas com base nos valores em uma ou mais colunas. Por padrão, ele classifica os valores em ordem ascendente.
Aqui está um exemplo de como usar .sort_values()
para classificar o DataFrame pelos valores da coluna “Age” em ordem ascendente:
A saída será:
Observe como os valores da coluna “Age” foram classificados em ordem ascendente.
Familiarizando-se com .sort_index()
O método .sort_index()
é usado para classificar um DataFrame do pandas com base em seu índice. Ele permite classificar o DataFrame em ordem ascendente ou descendente com base no índice.
Aqui está um exemplo de como usar .sort_index()
para classificar o DataFrame pelo índice em ordem descendente:
A saída será:
Observe como o DataFrame foi classificado em ordem descendente com base no índice.
Agora que você se familiarizou com .sort_values()
e .sort_index()
, vamos ver como classificar um DataFrame em uma única coluna.
Classificando seu DataFrame em uma única coluna
Classificar por uma coluna em ordem ascendente
Classificar um DataFrame por uma coluna em ordem ascendente é simplesmente uma questão de chamar o método .sort_values()
e especificar a coluna pela qual você deseja classificar.
Aqui está um exemplo de como classificar o DataFrame por ordem ascendente usando a coluna “Age”:
A saída será:
Observe que os valores da coluna “Age” foram classificados em ordem ascendente.
Alterando a ordem de classificação
Por padrão, .sort_values()
classifica os valores em ordem ascendente. No entanto, se você deseja classificar em ordem descendente, pode definir o parâmetro ascending
como False
.
Aqui está um exemplo de como classificar o DataFrame por ordem descendente usando a coluna “Age”:
A saída será:
Observe que os valores da coluna “Age” foram classificados em ordem descendente.
Escolhendo um algoritmo de classificação
O método .sort_values()
usa o algoritmo de classificação Timsort por padrão. No entanto, se você tiver um grande conjunto de dados e quiser melhorar o desempenho da classificação, poderá especificar um algoritmo de classificação diferente usando o parâmetro kind
.
Por exemplo, se você quiser usar o algoritmo de classificação Quicksort, pode fazer o seguinte:
Observe que o tipo de algoritmo é específico para cada coluna individualmente.
Agora que você aprendeu a classificar seu DataFrame em uma única coluna, vamos ver como classificá-lo em várias colunas.
Classificando seu DataFrame em várias colunas
Classificando por várias colunas em ordem ascendente
Classificar um DataFrame por várias colunas em ordem ascendente é uma questão de passar uma lista de colunas para o método .sort_values()
. O DataFrame será classificado pela primeira coluna especificada e, em seguida, pela segunda coluna, se houver empates.
Aqui está um exemplo de como classificar o DataFrame pelas colunas “Age” e “Name” em ordem ascendente:
A saída será:
Observe como o DataFrame foi classificado primeiro pela coluna “Age” e depois pela coluna “Name”.
Alterando a ordem de classificação de colunas
Se você deseja alterar a ordem de classificação das colunas especificadas, pode passar uma lista com o nome das colunas na ordem desejada.
Aqui está um exemplo de como classificar o DataFrame pelas colunas “Name” e “Age” em ordem ascendente:
A saída será:
Observe como o DataFrame foi classificado primeiro pela coluna “Name” e depois pela coluna “Age”, em ordem ascendente.
Classificando por várias colunas em ordem descendente
Se você deseja classificar o DataFrame por várias colunas em ordem descendente, basta definir ascending
como False
.
Aqui está um exemplo de como classificar o DataFrame pelas colunas “Age” e “Name” em ordem descendente:
A saída será:
Observe como o DataFrame foi classificado primeiro pela coluna “Age” e depois pela coluna “Name”, em ordem descendente.
Classificando por várias colunas com diferentes ordens de classificação
Se você deseja classificar o DataFrame por várias colunas com diferentes ordens de classificação, basta especificar ascending
como uma lista de booleanos correspondentes à ordem desejada.
Aqui está um exemplo de como classificar o DataFrame pelas colunas “Age” e “Name”, com a coluna “Age” em ordem ascendente e a coluna “Name” em ordem descendente:
A saída será:
Observe como o DataFrame foi classificado primeiro pela coluna “Age” em ordem ascendente e, em seguida, pela coluna “Name” em ordem descendente.
Agora que você aprendeu a classificar um DataFrame em várias colunas, vamos ver como classificá-lo pelo seu índice.
Classificando seu DataFrame pelo Índice
Classificando pelo índice em ordem ascendente
Você pode classificar um DataFrame pelo seu índice usando o método .sort_index()
. Por padrão, ele classifica em ordem ascendente.
Aqui está um exemplo de como classificar o DataFrame pelo índice em ordem ascendente:
A saída será:
Observe como o DataFrame foi classificado pelo índice em ordem ascendente.
Classificando pelo índice em ordem descendente
Para classificar o DataFrame pelo índice em ordem descendente, você pode definir o parâmetro ascending
como False
.
Aqui está um exemplo de como classificar o DataFrame pelo índice em ordem descendente:
A saída será:
Observe como o DataFrame foi classificado pelo índice em ordem descendente.
Explorando conceitos avançados de classificação de índice
O método .sort_index()
oferece opções para personalizar ainda mais a classificação do índice. Por exemplo, você pode usar o parâmetro level
para classificar o índice com base em um nível específico em um DataFrame com índice hierárquico.
Além disso, você pode usar parâmetros como sort_remaining
para especificar se as partes não selecionadas do índice devem ser classificadas quando o level
é especificado.
No entanto, para fins deste tutorial, nos limitaremos aos conceitos básicos de classificação do índice.
Agora que você aprendeu a classificar um DataFrame pelo seu índice, vamos ver como classificar as colunas do DataFrame.
Classificando as colunas do seu DataFrame
Trabalhando com o eixo do DataFrame
Você pode usar o parâmetro axis
junto com os métodos .sort_values()
e .sort_index()
para classificar as colunas do DataFrame em vez das linhas.
Por exemplo, se você deseja classificar as colunas do DataFrame em ordem ascendente, pode fazer o seguinte:
A saída será:
Observe como as colunas do DataFrame foram classificadas em ordem ascendente.
Usando rótulos de coluna para classificar
Você também pode usar os rótulos de coluna para classificar as colunas do DataFrame.
Aqui está um exemplo de como usar os rótulos de coluna para classificar as colunas do DataFrame em ordem ascendente:
A saída será:
Observe como as colunas do DataFrame foram classificadas em ordem ascendente com base nos rótulos de coluna.
Agora que você aprendeu a classificar as colunas de um DataFrame, vamos ver como lidar com dados ausentes durante a classificação no pandas.
Lidando com Dados Ausentes ao Classificar no pandas
Ao classificar um DataFrame, é importante considerar como os dados ausentes serão tratados. O pandas oferece opções para definir o comportamento de classificação quando há dados ausentes em uma ou mais colunas.
Compreendendo o parâmetro na_position em .sort_values()
O método .sort_values()
possui o parâmetro na_position
que determina como os valores ausentes (NaN
) serão posicionados durante a classificação.
O valor padrão para o parâmetro na_position
é 'last'
, o que significa que os valores ausentes serão posicionados no final do DataFrame durante a classificação.
Aqui está um exemplo de como usar o .sort_values()
com o parâmetro na_position
definido como 'last'
:
A saída será:
Observe como os valores ausentes são colocados no final do DataFrame durante a classificação.
Compreendendo o parâmetro na_position em .sort_index()
Da mesma forma, o método .sort_index()
também possui o parâmetro na_position
. O comportamento é semelhante ao do .sort_values()
.
O valor padrão para o parâmetro na_position
em .sort_index()
também é 'last'
, o que significa que os valores ausentes no índice serão posicionados no final durante a classificação.
Aqui está um exemplo de como usar o .sort_index()
com o parâmetro na_position
definido como 'last'
:
A saída será:
Observe como os valores ausentes no índice são colocados no final durante a classificação.
Agora que você aprendeu como lidar com dados ausentes durante a classificação no pandas, vamos ver como usar os métodos de classificação para modificar o DataFrame.
Usando Métodos de Classificação para Modificar seu DataFrame
Os métodos .sort_values()
e .sort_index()
têm uma opção de inplace
que permite modificar o DataFrame original em vez de criar uma nova cópia classificada.
Usando .sort_values() no lugar
Se você deseja classificar o DataFrame no lugar, em vez de criar uma nova cópia classificada, pode usar o parâmetro inplace
do .sort_values()
.
Aqui está um exemplo de como usar o .sort_values()
no lugar para classificar o DataFrame pela coluna “Age” em ordem ascendente:
A saída será:
Agora o DataFrame original foi classificado no lugar.
Usando .sort_index() no lugar
Da mesma forma, você pode usar o parâmetro inplace
do .sort_index()
para classificar o DataFrame pelo índice no lugar.
Aqui está um exemplo de como usar o .sort_index()
no lugar para classificar o DataFrame pelo índice em ordem descendente:
A saída será:
Agora o DataFrame original foi classificado pelo índice no lugar.
Agora que você aprendeu como usar os métodos de classificação para modificar o DataFrame, vamos concluir o tutorial.
Conclusão
Neste tutorial, você aprendeu como usar os métodos .sort_values()
e .sort_index()
do pandas para classificar um DataFrame com base nos valores de colunas e no índice. Você também aprendeu a trabalhar com dados ausentes durante a classificação e a usar os métodos de classificação para modificar o DataFrame original.
A classificação é uma habilidade essencial para a análise de dados e o pandas torna o processo de classificação simples e eficiente.
Agora você está pronto para começar a classificar seus próprios conjuntos de dados com o pandas!