1
resposta

[Sugestão] Forma alternativa de tratar os dados sem RE

Em 4.3 (Dados de chuva ,somar dados) o instrutor usa expressões regulares para tratar os dados que levantam erro porque o float() esta retornando ValueError pois existem linhas onde o número de casos esta como um string vazia ou espaço.

import re
...
if bool(re.search(r'\d, registro['casos'])):
    yield yield (f"{uf}-{registro['ano_mes']}",float(registro['casos']))
else:
    yield (f"{uf}-{registro['ano_mes']}",0.0)

Só que o arquivo tem mais de 2 milhões de entradas então o python vai acessar registro['casos'] 2 milhões de vezes chamar re.search 2 milhões de vezes e verificar se o retorno da chamada de re.search() é verdadeiro 2 milhões de vezes. Nesse caso é melhor usar try

try:
            yield (f"{uf}-{registro['ano_mes']}",float(registro['casos']))
except ValueError:
            yield (f"{uf}-{registro['ano_mes']}",0.0)
```		

Dessa forma não há a chamada de re.search() a cada linha alias ela se torna dispensável
1 resposta

Olá Isac, tudo bem com você?

É muito importante o engajamento e auxílio da comunidade no fórum da Alura. Obrigado por sua contribuição e dica, com certeza ajudará outras pessoas.

Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!