Na seguinte linha de código: "dados['descricao_vizinhanca'] = dados['descricao_vizinhanca'].str.lower()"
Ao aplicar esse método sobre a coluna 'descrição_vizinhança' os valores resultantes são 'NaN'(not a number), isso porque a aplicação do método .str nesse caso é sobre uma lista de listas, não sobre uma única lista. O que impacta diretamente nas demais linhas da resolução, que estariam corretas, se essa primeira linha estivesse correta.
para resolver isso eu tive que percorrer a lista elemento a elemento e fazer a conversão de cada lista para minusculas por vez:
def to_lowercase(lst):
if isinstance(lst, list):
return [str(item).lower() for item in lst]
return lst
dataf['descricao_vizinhanca'] = dataf['descricao_vizinhanca'].apply(to_lowercase)