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!

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay