Olá pessoal, tudo bem?
Estou praticando com os desafios e me apareceu a seguinte dúvida:
Removi alguns registros da base de alunos assim, seguindo o Desafio 3:
remover_alunos = dados_alunos.query('Nome == "Alice" | Nome == "Carlos"').index
dados_alunos.drop(remover_alunos, axis=0, inplace=True)
A exclusão funcionou, mas percebi que o index
ficou “furado” (pulando do 6 para o 9, já que os índices 7 e 8 foram removidos).
Tentei resolver com:
dados_alunos.reset_index(drop=True)
Ele mostra corretamente quando eu imprimo o DataFrame, mas quando vou plotar um gráfico para teste, o eixo X ainda aparece com os índices antigos. Só depois percebi que o reset_index()
estava retornando uma cópia, e que o meu DataFrame original não foi alterado.
Seguem as dúvidas:
1- Em termos de boas práticas, é correto resetar os índices após remoções, ou é melhor manter os índices originais, mesmo com “furos”?
Em pipelines de análise ou produção, qual abordagem costuma ser mais segura e menos propensa a erros?
2 - Pergunto porque inicialmente achei que os dados não tinham sido removidos de fato, e isso me deixou preocupado em relação a possíveis erros silenciosos em pipelines e análises mais complexas.
Obs:
Quanto a inconsistência (cópia vs inplace), o comando a seguir resolveu a questão, já que agora o DataFrame original é atualizado de fato.
dados_alunos = dados_alunos.reset_index(drop=True)
Obrigado!