2
respostas

Uso do parâmetro AXIS

Não entendi o uso do AXIS = 1 pra que ele serve nesse parâmetro? E por que é igualado à 1?

2 respostas

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.

  1. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_index.html?highlight=sort_#pandas.DataFrame.sort_index
  2. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html?highlight=sort_#pandas.DataFrame.sort_values

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:

ZYX
3123
1978
2654

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:

ZYX
3123
2654
1978

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:

YXZ
3321
2546
1789

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!