<jupyter_start><jupyter_text>Criando a tabela cursosOs cursos serão lidos a partir de uma página HTML.  Preparando o ambiente<jupyter_code>import pandas as pd
import numpy as np
!pip3 install html5lib
!pip install lxml
import html5lib
url = 'https://tabela-cursos.herokuapp.com/index.html'<jupyter_output><empty_output><jupyter_text>Carregando os dados<jupyter_code>cursos = pd.read_html(url)
cursos
# Está sendo lido como List e não como DataFrame
type(cursos)
# Ao chamar o HTMl, ele retorna uma lista de dataframes. Caso existam várias tabelas, retornarão vários dataframes.
type(cursos[0])
cursos = cursos[0]
cursos<jupyter_output><empty_output><jupyter_text>Tratamento dos dados<jupyter_code>cursos.columns = ['nome_do_curso']
cursos
cursos['id'] = cursos.index + 1
cursos.set_index('id', inplace = True)
cursos<jupyter_output><empty_output><jupyter_text>Salvando os dados<jupyter_code>cursos.to_json('dados/cursos.json')
pd.read_json('dados/cursos.json')
cursos.dtypes<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10159362549800798, 'fraction_numerical': 0.00597609561752988, 'mean_word_length': 7.815789473684211, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 1}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '432684', 'license': 'MIT', 'n_tokens_mistral': 404, 'n_tokens_neox': 396, 'n_words': 83, 'path': 'PandasIO/2 - Lendo cursos em HTML.ipynb', 'repo_name': 'SalatielBairros/data-science-studies', 'size': '1004'}