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

Apply(Lambda) não reconhece os termos

Coloquei o código abaixo no meu notebook e ele não reconhece os termos.

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

Quando eu tento rodar do mesmo jeito que está na aula, apresenta o seguinte erro:

NameError                                 Traceback (most recent call last)
<ipython-input-21-61decbd1d244> in <module>
----> 1 dados['Tipo Agregado'] = dados['Tipo'].apply(lambda x: 'Casa' if x in casa else 'Apartamento')
      2 dados.head(20)

~\anaconda3\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds)
   3846             else:
   3847                 values = self.astype(object).values
-> 3848                 mapped = lib.map_infer(values, f, convert=convert_dtype)
   3849 
   3850         if len(mapped) and isinstance(mapped[0], Series):

pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()

<ipython-input-21-61decbd1d244> in <lambda>(x)
----> 1 dados['Tipo Agregado'] = dados['Tipo'].apply(lambda x: 'Casa' if x in casa else 'Apartamento')
      2 dados.head(20)

NameError: name 'casa' is not defined

e quando eu coloco casa entre apóstrofes, ele reconhece apenas para as linhas que estão com o tipo "casa", as casas de vila e de condomínio aparecem como "Apartamento"

2 respostas
solução!

Olá Mayara,

Confere se foi criado a lista casa corretamente antes da execução do código que dá erro:

casa = ['Casa', 'Casa de Condomínio', 'Casa de Vila']

Se ainda tiver problemas compartilha o seu código completo dessa seção por favor.

Ok, agora funcionou. Obrigada

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software