Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Após o comando JOIN, a função DEF location não une os diferentes nomes dos países

Olá Pessoal! Usamos o join para unir os dataframes COMBINED com o UN_POPULATION_TOTAL, para que pudéssemos ter os valores das populações (PopTotal, junto às variáveis de COVID (confirmed, death, ...). Para isso, mudamos o index para que houvesse a combinação, trocamos o índice para "location_for_who", mas ao usarmos o JOIN, a função DEF rename_location(location), não retorna nada! P.ex: no DF combined, os EUA aparecem como US, já no DF un_population os EUA aparecem como United States of America. A função def deveria resolver esse problema, no entanto não faz nada! Vejam o exemplo da Coréia do Sul abaixo. Ocorre o mesmo...Insira aqui a descrição dessa imagem para ajudar na acessibilidade !

No fim, com medo que fosse dar algum problema a mais nas aulas seguintes, optei por usar o dropna() e vida que segue, mas eu perdi informações importantes. Ainda não entendi o que ocorreu, pois parece que a função def não arruma o que deveria. Não sei se eu mudei algo ou esqueci de mudar, enfim, não funcionou a função para corrigir os NaN do DF combinado.

Se alguém puder ajudar, agradeço!

1 resposta
solução!

Olá, João! Tudo bem com você?

Peço desculpa pela demora em responder o seu tópico.

A função rename_location(location) é uma função personalizada construída pelo instrutor para lidar com essas discrepâncias de nomes. Portanto, o problema pode estar na implementação dessa função.

E analisando o print que você compartilhou encontrei o que seria o seu problema. No mesmo bloco de código onde você cria a função rename_location(), existem dois trechos de códigos muitos importantes, sendo eles:

un_population_total_2019['location_for_who'] = un_population_total.index.map(rename_location)
un_population_total_2019.query("location_for_who=='Mainland Chine'").head()

O exemplo que compartilhei está quase igual ao seu, porém, existe uma parte que está faltando no seu código que é muito importante para funcionar corretamente. Você acabou esquecendo de rodar a query que vai buscar o "Mainland Chine" dentro do "location_for_who" que você havia estabelecido.

Logo, para que o seu código funcione corretamente, basta alterar o trecho comentado para o exemplo que compartilhei. Assim o seu problema estará resolvido.

Espero ter ajudado e caso surja mais dúvidas, estarei à disposição para ajudar!

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.