Use sort_values() para reordenar as linhas por valores de coluna. Aplique sort_index() para reorganizar as linhas pelo índice do DataFrame. Combine os dois métodos para explorar seus dados de diferentes ângulos.
Encontrar partes interessantes de dados em um DataFrame geralmente é mais fácil se você alterar a ordem das linhas. Você pode classificar as linhas passando um nome de coluna para .sort_values().
Nos casos em que as linhas têm o mesmo valor (isso é comum se você classificar em uma variável categórica), você pode querer quebrar os laços classificando em outra coluna. Você pode classificar várias colunas dessa forma, passando uma lista de nomes de colunas.
Usando o Pandas para classificar colunas
Você pode alterar a ordem das linhas, classificando-as de modo que os dados mais interessantes fiquem na parte superior do DataFrame.
Classificar colunas por uma única variável
Por exemplo, quando aplicamos sort_values() na coluna weight_kg do DataFrame dogs, obtemos o cão mais leve na parte superior, Stella, o Chihuahua, e o cão mais pesado na parte inferior, Bernie, o São Bernardo.
name breed color height_cm weight_kg date_of_birth
5 Stella Chihuahua Tan 1822015-04-203 Cooper Schnauzer Gray 49172011-12-110 Bella Labrador Brown 56242013-07-011 Charlie Poodle Black 43242016-09-162 Lucy Chow Chow Brown 46242014-08-254 Max Labrador Black 59292017-01-206 Bernie St. Bernard White 77742018-02-27Tecnologia
Se você definir o argumento ascending como False, os dados serão classificados no sentido inverso, do cão mais pesado para o mais leve.
name breed color height_cm weight_kg date_of_birth
6 Bernie St. Bernard White 77742018-02-274 Max Labrador Black 59292017-01-200 Bella Labrador Brown 56242013-07-011 Charlie Poodle Black 43242016-09-162 Lucy Chow Chow Brown 46242014-08-253 Cooper Schnauzer Gray 49172011-12-115 Stella Chihuahua Tan 1822015-04-20Tecnologia
Classificar colunas por múltiplas variáveis
Você pode classificar por várias variáveis passando uma lista de nomes de colunas para sort_values. Aqui, classificamos primeiro por peso e depois por altura. Agora, Charlie, Lucy e Bella estão ordenados do mais baixo para o mais alto, embora todos tenham o mesmo peso.
name breed color height_cm weight_kg date_of_birth
5 Stella Chihuahua Tan 1822015-04-203 Cooper Schnauzer Gray 49172011-12-111 Charlie Poodle Black 43242016-09-162 Lucy Chow Chow Brown 46242014-08-250 Bella Labrador Brown 56242013-07-014 Max Labrador Black 59292017-01-206 Bernie St. Bernard White 77742018-02-27Tecnologia
Para alterar a direção em que os valores são classificados, passe uma lista para o argumento ascendente para especificar a direção em que a classificação deve ser feita para cada variável. Agora, Charlie, Lucy e Bella estão ordenados do mais alto para o mais baixo.
name breed color height_cm weight_kg date_of_birth
5 Stella Chihuahua Tan 1822015-04-203 Cooper Schnauzer Gray 49172011-12-110 Bella Labrador Brown 56242013-07-012 Lucy Chow Chow Brown 46242014-08-251 Charlie Poodle Black 43242016-09-164 Max Labrador Black 59292017-01-206 Bernie St. Bernard White 77742018-02-27Tecnologia
Usando Pandas para classificar por linhas
Às vezes, você pode querer reordenar as linhas com base em seus rótulos de linha (ou seja, o índice do DataFrame) em vez de por colunas específicas. Se esse for o caso, você pode usar o método sort_index() em vez de sort_values(). Lembre-se de que, por padrão, o site sort_index() classificará as linhas em ordem crescente pelo índice:
# Sort rows by their index (ascending)
dogs_sorted = dogs.sort_index()print(dogs_sorted)Tecnologia
Se você precisar classificar as linhas em ordem decrescente, basta passar ascending=False:
# Sort rows by their index (descending)
dogs_sorted_desc = dogs.sort_index(ascending=False)print(dogs_sorted_desc)Tecnologia
Da mesma forma, se você tiver um índice multinível (hierárquico), o site sort_index() também poderá lidar com isso classificando vários níveis. Você só precisa passar uma lista para os parâmetros level ou ascending (assim como anteriormente tivemos que passar uma lista para sort_values()):
# Sort rows by multiple levels of a multi-level index
dogs_sorted_multi = dogs.sort_index(level=[0,1], ascending=[True,False])print(dogs_sorted_multi)Tecnologia
Exemplo interativo do Pandas Sort Values
No exemplo a seguir, você classificará homelessness pelo número de indivíduos sem-teto, do menor para o maior, e o salvará como homelessness_ind. Por fim, você imprimirá o cabeçalho do DataFrame classificado.
# Sort homelessness by individuals
homelessness_ind = homelessness.sort_values("individuals")# Print the top few rowsprint(homelessness_ind.head())Tecnologia
Quando executamos o código acima, ele produz o seguinte resultado:
region state individuals family_members state_pop
50 Mountain Wyoming 434.0205.057760134 West North Central North Dakota 467.075.07580807 South Atlantic Delaware 708.0374.096547939 New England Rhode Island 747.0354.0105828745 New England Vermont 780.0511.0624358Tecnologia
Para saber mais sobre a classificação e o subconjunto de dados, assista a este vídeo do nosso curso Manipulação de dados com pandas.
Este conteúdo foi extraído do curso Manipulação de dados com pandas do DataCamp, ministrado por Maggie Matsui e Richie Cotton.
Aprendizado adicional
Neste artigo, aprendemos, entre outras coisas, quando usar sort_index() vs. sort_values(): Use sort_values() quando você quiser reordenar as linhas com base nos valores das colunas; use sort_index() quando quiser reordenar as linhas com base nos rótulos das linhas (o índice do DataFrame).
Explore a análise de dados com Python. Os DataFrames do Pandas facilitam a manipulação de seus dados, desde a seleção ou substituição de colunas e índices até a remodelagem dos dados.
Aprenda métodos eficientes para ordenar um dicionário por valores em Python. Descubra como ordenar em ordem crescente e decrescente e dicas extras para a ordenação por chave.
Use o Python Pandas e selecione colunas de DataFrames. Siga nosso tutorial com exemplos de código e aprenda diferentes maneiras de selecionar seus dados hoje mesmo!
A importação de dados é a primeira etapa de qualquer projeto de ciência de dados. Saiba por que os cientistas de dados atuais preferem a função read_csv() do pandas para fazer isso.
Encontrar partes interessantes de dados em um DataFrame geralmente é mais fácil se você alterar a ordem das linhas. Você pode classificar as linhas passando um nome de coluna para
.sort_values().Nos casos em que as linhas têm o mesmo valor (isso é comum se você classificar em uma variável categórica), você pode querer quebrar os laços classificando em outra coluna. Você pode classificar várias colunas dessa forma, passando uma lista de nomes de colunas.
Usando o Pandas para classificar colunas
Você pode alterar a ordem das linhas, classificando-as de modo que os dados mais interessantes fiquem na parte superior do DataFrame.
Classificar colunas por uma única variável
Por exemplo, quando aplicamos
sort_values()na colunaweight_kgdo DataFrame dogs, obtemos o cão mais leve na parte superior, Stella, o Chihuahua, e o cão mais pesado na parte inferior, Bernie, o São Bernardo.Se você definir o argumento
ascendingcomo False, os dados serão classificados no sentido inverso, do cão mais pesado para o mais leve.Classificar colunas por múltiplas variáveis
Você pode classificar por várias variáveis passando uma lista de nomes de colunas para
sort_values. Aqui, classificamos primeiro por peso e depois por altura. Agora, Charlie, Lucy e Bella estão ordenados do mais baixo para o mais alto, embora todos tenham o mesmo peso.Para alterar a direção em que os valores são classificados, passe uma lista para o argumento ascendente para especificar a direção em que a classificação deve ser feita para cada variável. Agora, Charlie, Lucy e Bella estão ordenados do mais alto para o mais baixo.
Usando Pandas para classificar por linhas
Às vezes, você pode querer reordenar as linhas com base em seus rótulos de linha (ou seja, o índice do DataFrame) em vez de por colunas específicas. Se esse for o caso, você pode usar o método
sort_index()em vez desort_values(). Lembre-se de que, por padrão, o sitesort_index()classificará as linhas em ordem crescente pelo índice:Se você precisar classificar as linhas em ordem decrescente, basta passar
ascending=False:Da mesma forma, se você tiver um índice multinível (hierárquico), o site
sort_index()também poderá lidar com isso classificando vários níveis. Você só precisa passar uma lista para os parâmetroslevelouascending(assim como anteriormente tivemos que passar uma lista parasort_values()):Exemplo interativo do Pandas Sort Values
No exemplo a seguir, você classificará
homelessnesspelo número de indivíduos sem-teto, do menor para o maior, e o salvará comohomelessness_ind. Por fim, você imprimirá o cabeçalho do DataFrame classificado.Quando executamos o código acima, ele produz o seguinte resultado:
Experimente você mesmo.
Para saber mais sobre a classificação e o subconjunto de dados, assista a este vídeo do nosso curso Manipulação de dados com pandas.
Este conteúdo foi extraído do curso Manipulação de dados com pandas do DataCamp, ministrado por Maggie Matsui e Richie Cotton.
Aprendizado adicional
Neste artigo, aprendemos, entre outras coisas, quando usar
sort_index()vs.sort_values(): Usesort_values()quando você quiser reordenar as linhas com base nos valores das colunas; usesort_index()quando quiser reordenar as linhas com base nos rótulos das linhas (o índice do DataFrame).Temos muitos outros tutoriais úteis sobre pandas para que você possa continuar aprendendo, incluindo The ultimate Guide to Pandas for Beginners, para que você possa continuar praticando. Também temos outras instruções específicas para problemas comuns, incluindo Como importar dados CSV para o Pandas e Como unir DataFrames no Pandas. Além disso, lembre-se de fazer nosso curso de habilidades em programação Python para continuar aprimorando suas habilidades.