Tutorial de Pandas e SQLite
Este tutorial interativo em Python utiliza o marimo, um ambiente moderno de notebooks.
Neste notebook, você aprenderá a:
- Criar e consultar um banco de dados SQLite com sqlite3
- Carregar, explorar e manipular dados usando pandas
- Utilizar as células do marimo
para tornar a experiência interativa
Nota: Este ambiente é semelhante ao Jupyter Notebook, outra ferramenta popular. No entanto, o marimo
oferece melhor estrutura, reatividade e controle de versão.
Após instalar o marimo, basta digitar marimo edit seu_arquivo.py
no terminal para abrir o notebook no navegador. Leia mais sobre o marimo aqui.
Configuração Inicial
Carregando o Conjunto de Dados Titanic
Utilizaremos o conjunto de dados Titanic, disponível na biblioteca seaborn
.
Criando um Banco de Dados SQLite em Memória
conn = sqlite3.connect(":memory:")
df_titanic.to_sql("passengers", conn, index=False, if_exists="replace")
Consultando Dados com SQL
query = "SELECT * FROM passengers LIMIT 5;"
df_query = pd.read_sql_query(query, conn)
df_query
Análise Exploratória com Pandas
Estatísticas Descritivas
Contagem de Sobreviventes por Classe
Operações Avançadas com Pandas
Merge (Junção) de DataFrames
df_info = pd.DataFrame({
'class': ['First', 'Second', 'Third'],
'description': ['Primeira Classe', 'Segunda Classe', 'Terceira Classe']
})
df_merged = pd.merge(df_titanic, df_info, on='class', how='left')
df_merged[['class', 'description']].drop_duplicates()
Filtrando Dados
Criando Novas Colunas
Salvando e Carregando DataFrames com SQLite
df_titanic.to_sql("titanic_backup", conn, index=False, if_exists="replace")
df_loaded = pd.read_sql("SELECT * FROM titanic_backup", conn)
df_loaded.head()
Exercício 1: Contagem de passageiros por sexo e sobrevivência
Escreva uma consulta SQL para contar o número de passageiros por sexo e status de sobrevivência (survived
).
Resposta
Exercício 2: Passageiros mais jovens por classe
Utilize pandas para encontrar o passageiro mais jovem em cada classe (class), exibindo também seu nome, idade e sexo.
Resposta
Exercício 3: Porcentagem de menores de idade por classe
Crie uma nova coluna is_minor e calcule a porcentagem de menores de idade (idade < 18) por classe utilizando groupby.
Resposta
Extras
- Faça esse tutorial de SQL;
- Veja o um exemplo de arquivo marimo.