Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre método

Na aula "04. Filtrando dados parte 2. Imóveis Residenciais" por volta do minuto 2:35 o instrutor utiliza o seguinte código para criar uma lista sem valores duplicados da coluna 'Tipo':

list(dados['Tipo'].drop_duplicates())

Certo, neste caso minha saída é perfeita, com todos os tipos de imóveis no dataframe sem estarem duplicados.

Mas o que eu gostaria de entender é do porque não funciona criar a lista sem fazer a seleção em "dados['Tipo']", apenas utilizando o argumento subset dentro do método drop_duplicates(), por exemplo:

list(dados.drop_duplicates(subset = ['Tipo']))

Neste caso minha saída é a seguinte lista : ['Tipo', 'Bairro', 'Quartos', 'Vagas', 'Suites', 'Area', 'Valor', 'Condominio', 'IPTU']

Pelo que vi o interpretador me retornou todas as colunas não duplicadas ao invés de valores não duplicados dentro da coluna "tipo". Gostaria de entender o porque isso acontece. Obrigado.

1 resposta
solução!

Oi, Aurélio! Tudo bem com você?

Podemos entender o resultado analisando o que é retornado em cada comando. No comando dados['Tipo'].drop_duplicates() é enviado uma Series, dados['Tipo'], que funciona como uma coluna de valores. Por conta disso, também é retornada uma Series sem dados duplicados. Ao transformar uma Series em lista é salvado os valores dentro da Series.

Já no comando dados.drop_duplicates(subset = ['Tipo']) é enviado um Data Frame, dados, a remoção dos valores duplicados são dão pela coluna 'Tipo', mas ainda sim, é enviado todo o Data Frame dados, o que faz o retorno do método drop_duplicates ser também um Data Frame. Ao tentarmos converter um Data Frame para lista, temos como retorno apenas os nomes de suas colunas, como você mostrou.

Caso você deseje ter todos os valores do Data Frame dados, você pode utilizar o método values ao final do comando de remover duplicadas que será retornado um array contendo todos os dados do conjunto:

dados.drop_duplicates(subset = ['Tipo']).values

Espero ter te ajudado. Bons estudos!