1
resposta

DÚVIDAS__ Mais sobre classificações

Prezado(a).

Ao tentar fazer o exercício de fixação, fiquei com a seguinte dúvida:

Temos o seguinte código:

data2 = [['Ary','M',21],['Cátia','F',19],['Carlos','M',50],['Beto','M',29],['Bruna','F',31],['Ana','F',42]]

df_A = pd.DataFrame(data2,list('012345'),['Nome', 'Sexo','Idade'])

df_A

E queremos transforma-lo com um sort em 'Sexo', 'Nome'. Pelo gabarito, a resposta seria:

df_B = df_A.sort_values(by = ['Sexo', 'Nome'])

df_B

Entretanto, perante as aulas vistas, foi sempre usado no código o inplace= True. Seguindo esta lógica de aula, a resposta do problema seria:

df_B = df_A.sort_values(by = ['Sexo', 'Nome'], inplace = True)

df_B

Entretanto, quando gerei este último código, deu erro.

Minha dúvida é: Quando usar e não usar o inplace= True ??

1 resposta

Olá Thiago,

O uso do inplace vai depender da sua necessidade, ao utilizar o inplace o DataFrame original será modificado e nada será retornado:

  • Por causa do inplace = True as alterações de sort_values serão salvas em df_A e também não é retornado nenhum valor, significando que df_B não está recebendo nenhum valor

    # Temos aqui df_A alterado com os valores ordenados e df_B vazio
    df_B = df_A.sort_values(by = ['Sexo', 'Nome'], inplace = True)
  • Aqui sem o inplace = True o df_A não sofre alterações, é gerado um novo DataFrame ordenado que então salvamos em df_B:

    df_B = df_A.sort_values(by = ['Sexo', 'Nome'])

Assim utilizamos o inplace = True apenas quando queremos modificar diretamente o DataFrame original, e não retornar um novo DataFrame com as modificações.

Espero ter ajudado a esclarecer a dúvida, qualquer coisa é só falar!