Não entendi o uso do AXIS = 1
pra que ele serve nesse parâmetro? E por que é igualado à 1?
Não entendi o uso do AXIS = 1
pra que ele serve nesse parâmetro? E por que é igualado à 1?
Olá Eduardo, tudo bem?
De acordo com a minha compreensão, nos métodos sort_value e sort_index o parametro axis informa se queremos que a ação ocorra em relação a coluna ou as linhas. Quando o axis recebe o valor "1" significa que a ação será em relação as colunas do DataFrame. Quando o axis recebe o valor "0" a ação ocorrerá em realação as linhas. Quando não informamos axis, por padrão temos o axis igual a zero.
Você pode obter mias informações na documentação disponível no site do Pandas. Abaixo separei dois links onde você pode obter mais informações sobre o axis e outros parâmetros interessantes.
Oi Eduardo! Tudo bem com você?
Complementando a resposta do Osvaldo acima:
No método sort_values
os valores são organizados a partir de uma linha ou coluna definida. Para que ele funcione corretamente, precisamos nos atentar ao parâmetro axis
que vai definir quais eixos serão feitas as comparações e gerar a ordenação.
Para entender melhor o funcionamento do método sort_values
e a importância do axis
vamos definir um DataFrame similar ao apresentado em aula:
import pandas as pd
data = [[1, 3, 2], [9, 7, 8], [6, 5, 4]]
df = pd.DataFrame(data, list('312'), list('ZYX'))
Daqui a variável df terá a seguinte estrutura:
Z | Y | X | |
---|---|---|---|
3 | 1 | 2 | 3 |
1 | 9 | 7 | 8 |
2 | 6 | 5 | 4 |
Para que possamos ordenar os valores pela coluna ‘Z’ precisaremos que haja uma uma comparação entre os valores das linhas ‘3’, ‘2’ e ‘1’ de forma que essas linhas se organizem para atender à requisição de ordenamento. Então ao definir a coluna de referência com o parâmetro by = 'Z'
precisamos definir qual o eixo para a comparação dos valores, e pelo o que foi explicado, definiremos como axis=0
.
df.sort_values(by = 'Z', axis = 0, inplace = True)
df
E teremos como resultado os valores da coluna ‘Z’ ordenados:
Z | Y | X | |
---|---|---|---|
3 | 1 | 2 | 3 |
2 | 6 | 5 | 4 |
1 | 9 | 7 | 8 |
Desejando agora ordenar os valores da linha ’1’ precisaremos que haja uma comparação entre os valores das colunas ‘Z’, ‘Y’ e ‘X’. Para isso definimos nossa linha de referência com o by = '1'
e informamos que deve ser feita uma comparação entre as colunas com o parâmetro axis=1
.
df.sort_values(by = '1', axis = 1, inplace = True)
df
E teremos como resultado os valores da linha ‘1’ ordenados:
Y | X | Z | |
---|---|---|---|
3 | 3 | 2 | 1 |
2 | 5 | 4 | 6 |
1 | 7 | 8 | 9 |
Se você quiser testar ainda mais a utilidade do parâmetro axis=1
, recomendo você trocar o 1 por 0 no código. Você verá que o código irá mostrar um erro na linha do método, pois o comando não segue a lógica explicada acima.
Eu espero muito ter te ajudado a entender melhor! Qualquer outra dúvida estarei disposta a sanar ;-)
Bons estudos!