Copa, Pandas e Python
A copa do mundo é um evento maravilhoso. Une pessoas, amantes de futebol, amigos, quem não gosta de futebol, família, todos vibrando enquanto torcem por seu país.
É em cima dela que sai dos exercícios práticos na plataforma do DataCamp e comecei a estudar e estruturar meus estudos de ciência de dados em um cenário real.
Munida de uma base que contém todos os jogadores da Copa de 2018 e uma tabela que associa países com seus continentes, encarei meu primeiro desafio real.
Os exercícios fazem parte de uma tarefa do curso de Data Science e Machine Learning que estou fazendo na Tera, mas aproveitei para tentar utilizar bibliotecas diferentes das que aprendi até agora e também para praticar fazer gráficos diferentes. A primeira coisa que fiz foi importar todas as bibliotecas que ia utilizar, bem como os arquivos a serem utilizados.
Antes de começar a analisar qualquer informação, assim como já faço no Excel, segui para uma tratativa da base. Verifiquei se haviam valores duplicados dentro das bases, se haviam células vazias, renomeei alguns headings para melhorar o entendimento de outras pessoas e ajustei as datas de nascimento para que fossem reconhecidas como data e não string.
Algumas coisas interessantes que notei:
- A função para remover duplicatas considera duplicatas exatas em todas as colunas, drop_duplicates(), não sendo necessário escolher quais colunas considerar, como acontece no Excel.
- A função de preencher células vazias, fillna(), pode ser utilizada em agrupamentos diferente, da mesma forma que é possível criar uma coluna adicional para identificar quais as células que estavam vazias antes de serem preenchidas.
- A função para ajustar datas, to_datetime, é surpreendente. Como usuária de Excel sinto enorme dificuldade dependendo da base para conseguir tratar as informações de data e deixá-las toda em um mesmo padrão. A função do to_datetime reconhece todos os formatos de preenchimento e troca o conteúdo da célula para um de data. Seu processamento é eficiente e o valor agregado é ímpar. Se isso não é motivo suficiente para se apaixonar perdidamente pelo Pandas, não sei qual é.
A função para ajustar datas to_datetime é surpreendente. Como usuária de Excel sinto enorme dificuldade dependendo da base para conseguir tratar as informações de data e deixá-las toda em um mesmo padrão. A função do to_datetime reconhece todos os formatos de preenchimento e troca o conteúdo da célula para um de data.
- As funções da biblioteca datetime foram muito importantes para conseguir realizar alguns exercícios. Todavia, ressalto que a função date.today(), que traz a data de hoje, não vem em formato de data, sendo necessário utilizar o pd.to_datetime() nela para que retorne uma data de fato.
Após tratar as bases, realizei um merge pela coluna ‘Country’ que era igual para ambas as bases. Em seguida comecei a utilizar algumas funções estatísticas e de agrupamento para descobrir informações interessantes. Por exemplo, você sabia que a altura média de todos os jogadores na Copa de 2018 é 1,82m? Ou que o jogador mais alto de todos tem 2,01m de altura? Que 444 jogadores tinham mais de 30 anos, comparado com 292 com 30 ou menos?
Acabadas essas análises, decidi que seria interessante experimentar algumas funções diferentes de recursos gráficos. Primeiramente fiz um gráfico de barras com o próprio matplotlib para mostrar a quantidade de gols por país. Eu já tinha feito gráfico de swarmplot, histogramas e lineares, então foi interessante ver como a sintaxe deste gráfico é diferente do histograma. Escolhi este porque conseguiria escolher tanto as informações do eixo x quanto as do eixo y. Deixo abaixo os códigos de preparação para o gráfico, que envolvem escolha de tamanho do gráfico em si, definição de título, de legenda, a rotação da legenda do eixo x para que coubessem todos os países — e o gráfico em si.
Caso você não se lembre, a nação vencedora da Copa de 2018 foi a França. Não seria a conclusão óbvia se considerássemos apenas os gols por país. Neste caso Portugal teria sido a grande ganhadora.
O segundo gráfico que eu fiz foi um de swarmplot, para visualizar como é a distribuição de altura entre os jogadores. Esse gráfico faz parte da biblioteca Seaborn, que tem foco em visualização gráfica para dados estatísticos. Eu li a documentação da biblioteca para fazer este e o próximo gráfico. Gostei muito de como existem muitos tipos de gráfico (só na galeria tem 40 tipos diferentes) e como tem uma possibilidade de se trabalhar com cores muito grande.
Curiosa ao ver que existe um outlier, com mais de 45 anos, decidi fazer uma query para descobrir que jogador era esse. É o Essam Elhadary, goleiro do Egito, que jogou 158 jogos pelo time.
O último gráfico foi um mapa de calor, para identificar como foi o desempenho de gols por continente. Eu particularmente gosto muito de mapas de calor, eles são bem intuitivos para se ler. Queria tentar fazê-lo também pelo desafio de ter que criar uma pivot table dentro do Python. Ainda não tinha aprendido esse tipo de função ou resolução dentro do Python e vi que, assim como outras funções, é bem eficiente em comparação com o Excel. Apesar de não ter a função de só clicar e criar, você tem mais domínio de como sai a pivot, pois alimenta os argumentos e pode escolher diversas funções em como ela será agregada (por exemplo: soma, contar).
A Europa disparou na frente em quantidade de gols, muito provavelmente por conta da contribuição de Portugal, como vimos no gráfico de barras.
Ao final de todos esses exercícios eu fico apenas mais interessada ainda pelas possibilidades que o Python apresenta.
Quanto ao Pandas, só posso dizer ❤.
Com toda certeza irei procurar mais funções dentro dessa biblioteca que ajudem a realizar tarefas que já realizo dentro do Excel, além de outras que podem ajudar nos estudos de Data Science e Machine Learning.