Olá, Tereza, tudo bem?
Quando você usa df = df.query('Tipo == "Apartamento"')
, o método query()
cria um novo DataFrame apenas com as linhas que atendem ao filtro. Esse novo objeto é então atribuído novamente à variável df
. Na prática, o Python está atualizando a referência da variável df
para apontar para esse novo DataFrame. O anterior só permanece na memória caso ainda exista outra variável apontando para ele; caso contrário, será descartado pelo coletor de lixo.
Agora, sobre a diferença entre sobrescrever e criar uma nova variável, podemos pensar assim:
Sobrescrever o DataFrame
Utilizamos quando não precisamos mais dos dados originais e queremos economizar memória. Porém, perdemos a possibilidade de voltar ao DataFrame completo. Também ajuda a manter o código mais enxuto e organizado, já que evita a criação de várias variáveis intermediárias.
Criar uma nova variável
Mantém os dados originais intactos, o que é interessante em análises exploratórias, já que podemos aplicar diferentes filtros e comparar resultados. Por exemplo:
df_apartamentos = df.query('Tipo == "Apartamento"')
Assim, df
continua com todos os registros, e df_apartamentos
contém apenas os filtrados.
Portanto, sobrescrever é mais econômico, mas menos flexível; criar uma nova variável dá mais segurança e liberdade durante a análise.
Espero ter esclarecido sua dúvida.
Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!