A ordem que coloca no parâmetro "by" importa?
A ordem que coloca no parâmetro "by" importa?
Boas André!! Tudo bem? Espero que sim! A ordem dos parâmetros importa sim! Vou demonstrar! Primeiro vamos importar uma base de dados e realizar o sort com os valores. Eu gosto muito de Pokemon, então a base de dados que vou usar é uma pokedex disponível no GitHub. Dessa forma, não precisaremos baixar nenhum arquivo para trabalhar com os dados. Primeiramente, vamos importas o pandas:
import pandas as pd
Agora, vamos importar a base de dados:
dados = pd.read_csv('https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv')
Se olharmos para os dados nesse momento, eles estão ordenados pelo número do pokemon na pokedex:
# Name Type 1 Type 2 Total HP Attack Defense Sp. Atk Sp. Def Speed Generation Legendary
0 1 Bulbasaur Grass Poison 318 45 49 49 65 65 45 1 False
1 2 Ivysaur Grass Poison 405 60 62 63 80 80 60 1 False
2 3 Venusaur Grass Poison 525 80 82 83 100 100 80 1 False
3 3 VenusaurMega Venusaur Grass Poison 625 80 100 123 122 120 80 1 False
4 4 Charmander Fire NaN 309 39 52 43 60 50 65 1 False
Agora, vamos fazer dois o sort de duas maneiras a partir das colunas HP, e Generation, em ordens difrerentes para ver a diferença entre os dataframes:
dados1 = dados.sort_values(by=['HP', 'Generation'])
Para facilitar a visualização, vamos printar apenas o index, nome do Pokemon, HP e a geração:
#estou usando o collab, então não preciso colocar essa expressão em um print
dados1[['Name', 'HP', 'Generation']].head()
Que resulta em:
Name HP Generation
316 Shedinja 1 3
55 Diglett 10 1
139 Magikarp 20 1
186 Pichu 20 2
230 Shuckle 20 2
E agora vamos fazer o mesmo, invertendo os valores no by:
dados2 = dados.sort_values(by=['Generation', 'HP'])
E a visualização:
dados2[['Name', 'HP', 'Generation']].head()
Que resulta em:
Name HP Generation
55 Diglett 10 1
139 Magikarp 20 1
68 Abra 25 1
88 Magnemite 25 1
24 Rattata 30 1
Perceba que dados1 e dados2 são diferentes, pois a ordem que inserimos no by altera a forma com que o DataFrame é ordenado.
Espero ter ajudado! Bons estudos!