DEV Community

Cover image for Pandas + NBB data 🐼🏀
DeadPunnk
DeadPunnk

Posted on

Pandas + NBB data 🐼🏀

Quando se aprende lógica de programação é comum começar resolvendo problemas simples de matemática, utilizando a linguagem de programação escolhida para aprender a programar.

Quase todo programador já precisou escrever um algoritmo para separar números pares de ímpares, pensando nisso fiz uso desse pequeno script para tratar um dataframe extraído do site da NBB (Novo Basquete Brasil), com dados da tabela de classificação do campeonato 24/25 até o momento.

Os dados são extraídos do site: LNB, usando a função read_html() da biblioteca Pandas, que nos retorna uma lista com os dataframes extraídos dos site.

import pandas as pd

tabela = pd.read_html('https://lnb.com.br/nbb/')
tabela[0].head()
Enter fullscreen mode Exit fullscreen mode

Image description

Por terem sido extraídos da web através do HTML do site, existem dados sem muita importância para nós, dados que vieram das tags presentes no HTML e que não necessariamente carregam informações úteis.

Podemos notar que as linhas de índex ímpares não carregam dados úteis e se repetem por todo o dataframe, pensando nisso vamos manter apenas os indexes pares.

tabela_lista = []
for i in range(len(tabela[0])):

    if (i % 2) == 0: 
        tabela_lista.append(tabela[0].iloc[i])
Enter fullscreen mode Exit fullscreen mode

Com aquele mesmo algoritmo, que todo programador já viu em algum momento durante seu aprendizado, vamos separar os indexes que são pares e manter apenas eles no nosso dataframe. Para isso basta pegar o número do índex e se o resto de sua divisão por 2 for igual a 0 então o número é par, logo iremos manter ele em nosso dataframe.

Utilizando a lista com as series, vamos montar o novo dataframe.

tabela_df = pd.DataFrame(tabela_lista)
tabela_df
Enter fullscreen mode Exit fullscreen mode

O resultado fica de acordo com a imagem abaixo.

Image description

O ultimo tratamento que vamos fazer é um reset no índex do dataframe, para que volte a começar do 0, como se fosse originalmente desta forma. Com atributo inplace certificamos que as alterações serão feitas no dataframe original.

tabela_df.reset_index(inplace = True)
tabela_df
Enter fullscreen mode Exit fullscreen mode

Image description

Finalizado, agora se desejar também é possível extrair a tabela utilizando a função to_csv() ou trabalhar com ela em um jupyter notebook.

Obrigado por ler o artigo!

Top comments (0)