1
resposta

[Dúvida] Por que usar list e map? (Sugestão incluída)

Tive muita dificuldade em entender essa parte já que não tinha visto algumas coisas nas aulas anteriores como: list, map e loc

Consegui entender e colocar de uma maneira de mais facil visualização:

df.set_index("País", inplace=True)
brasil = df.loc["Brasil", "1980":"2013"] 
brasil_dados = pd.DataFrame(brasil)
brasil_dados.reset_index(inplace=True)
brasil_dados.columns = ["Ano", "Imigrantes"]
brasil_dados

Dessa forma apliquei meus conhecimentos e obtive os mesmos resultados. Pela experiência da professora imagino que deva ser melhor o jeito dela, mas por quê seria?

1 resposta

Bom dia, Israel! Ótima abordagem! Muitas vezes, reformular o código para um formato mais legível facilita a compreensão, principalmente quando ainda não temos familiaridade com conceitos como listas, map e loc.

A sua solução funciona bem e deixa o código mais intuitivo. No entanto, a professora pode ter escolhido uma abordagem diferente por questões de eficiência e boas práticas. Vou explicar alguns pontos que podem justificar essa escolha.


Comparação das Abordagens

1️ Seu Código (Mais Visual e Didático)

df.set_index("País", inplace=True)  # Define "País" como índice  
brasil = df.loc["Brasil", "1980":"2013"]  # Filtra apenas os anos desejados  
brasil_dados = pd.DataFrame(brasil)  # Converte para DataFrame  
brasil_dados.reset_index(inplace=True)  # Reseta o índice para transformar anos em coluna  
brasil_dados.columns = ["Ano", "Imigrantes"]  # Renomeia as colunas  
brasil_dados  

Vantagens:

  • Código mais intuitivo e fácil de entender.
  • Utiliza funções do pandas de forma clara.
  • Ótimo para aprendizado e visualização passo a passo.

Desvantagens:

  • Pode ser menos eficiente devido ao uso de múltiplas operações encadeadas.
  • A cada transformação (set_index, reset_index, renomeação), o pandas recria estruturas de dados, o que pode impactar a performance em grandes DataFrames.

2️ Possível Código da Professora (Mais Conciso e Eficiente)

brasil_dados = df.loc["Brasil", "1980":"2013"].reset_index().rename(columns={"index": "Ano", "Brasil": "Imigrantes"})

Vantagens:

  • Código mais curto e eficiente.
  • Realiza todas as operações em uma única linha, reduzindo a recriação de objetos intermediários.
  • Melhora a performance ao trabalhar com grandes volumes de dados.

Desvantagens:

  • Pode ser menos legível para quem não tem familiaridade com pandas.
  • Mais difícil de entender para iniciantes.

Conclusão

Ambas as abordagens estão corretas, mas a escolha depende do contexto:

  • Se a prioridade for legibilidade e aprendizado, sua abordagem é ótima!
  • Se o foco for eficiência e código mais enxuto, a abordagem mais concisa pode ser melhor.

O importante é entender o motivo por trás das escolhas e adaptar para o que faz mais sentido para você!

Se precisar de mais ajuda, estamos por aqui!