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?

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!