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!

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay