1
resposta

[Dúvida] [Dúvida] Reset de índice após remoção de registros no DataFrame

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!

1 resposta

Ei! Tudo bem Yuri?

Parabéns por praticar os desafios!

Usar reset_index(drop=True) após remoções é uma boa prática em pipelines. Índices "furados" podem causar erros em junções, agrupamentos ou gráficos. Manter índices sequenciais e consistentes facilita a manutenção do código e reduz a chance de bugs. A menos que os índices originais tenham um significado específico (como um ID único), resetá-los é geralmente mais seguro.

O fato de reset_index() retornar uma cópia (e não alterar o DataFrame original) é um comportamento comum em Pandas. Para evitar surpresas, sempre verifique se o DataFrame foi realmente modificado e sempre atribua o dataframe modificado a uma variável nova.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Yuri!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!