Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Criando variáveis: agrupamentos maiores

Boa tarde!

Na última lição da aula, o professor criou uma variável agrupando o imóvel em apenas dois tipos: casa ou apartamento conforme abaixo:

dados['Tipo Agregado'] = dados['Tipo'].apply(lambda x: 'Casa' if x in casa else 'Apartamento')

Minha dúvida.

Vamos imaginar que a variável TIPO possui mais de 100 opções. E eu queira fazer 20 AGRUPAMENTOS. Sabendo que já tenho uma tabela/banco de dados que já relacione TIPO com AGRUPAMENTO, existe alguma forma de fazer como se fosse um ‘procv’ no excel? Utilizando os dois banco de dados?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
4 respostas
solução!

Olá Flávio, tudo bem? Espero que sim!

Vamos utilizar a mesma lógica, com a função apply(), porém capturando a informação da outra base de dados.

Suponha que você carregou a outra base de dados em outra variável, com nome dados2. Esse conjunto de dados possui uma coluna com os tipos e outra coluna com o agrupamento.

Se você utilizar o código dados2[dados2['Tipo'] == x]['Agrupamento'].values[0], você estará pegando o valor do agrupamento referente a um tipo x. Logo, você pode utilizar isso como a função lambda para retornar um valor para cada tipo do conjunto de dados a partir da coluna Tipo do objeto dados:

dados['Tipo agregado'] = dados['Tipo'].apply(lambda x: dados2[dados2['Tipo'] == x]['Agrupamento'].values[0])

Tenha certeza que a tabela dados2 possua apenas valores únicos na coluna Tipo, já que o método values[0] retornará apenas o primeiro elemento encontrado da coluna Agrupamento.

Qualquer dúvida estou à disposição. Bons estudos!

Muito Obrigado! Ajudou bastante!

Tem mais uma observação.

Percebi que a Tabela de dados2 precisa ter todos os elementos de dados['Tipo'] devidamente classificados em um grupo. Do contrário dará erro.

É isso mesmo?

Olá Flávio,

Todos os valores únicos precisam estar classificados, do contrário o elemento não será encontrado e dará erro.

Valeu. Muito Obrigado!