top of page

Como criar uma API com kaggle e ler um dataset

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 1 de set.
  • 2 min de leitura

Atualizado: 11 de set.


Tenho usado o site kaggle para pegar datasets para estudar data science com Python utilizando o google colab, e toda vez, tenho que ficar baixando o arquivo csv ou ficar ajustando o apontamento no import. Com ajuda do chatgpt (amo) fizemos um script para ler diretamente do kaggle e com alguns tipos de arquivos




Criando o token de acesso


Logada no kaggle, nas configurações de perfil, settings,


ree


ree

Documentação oficial, clique aqui!


Quando clicamos em "criar novo token" ele sobrepõe o anterior e automaticamente é baixado um arquivo .json com as credenciais.


ree


O dataset que escolhi no kaggle foi este: conjunto de dados




Pegando o endereço do dataset no kaggle


Ao abrir o link do dataset, no canto superior direito clique em código e copie o caminho conforme selecionei na imagem abaixo e no item # 3 do script, em "dataset = ", insira o caminho.


ree




Script


# ======================================================================
# script
# ======================================================================

# 1) Instalar a CLI do Kaggle
!pip -q install kaggle

# 2) Configurar credenciais usando a chave fornecida
import os, json, glob, subprocess
import pandas as pd
from IPython.display import display

# >>>>> Preenchidos com os dados que você forneceu <<<<<
usuario_kaggle = "INSIRA SEU NOME DE USUÁRIO NO KAGGLE AQUI"
chave_kaggle   = "INSIRA SUA CHAVE AQUI"

# Exporta como variáveis de ambiente (a CLI do Kaggle aceita assim)
os.environ["KAGGLE_USERNAME"] = usuario_kaggle
os.environ["KAGGLE_KEY"]      = chave_kaggle

# cria o arquivo kaggle.json (opcional)
os.makedirs("/root/.kaggle", exist_ok=True)
with open("/root/.kaggle/kaggle.json", "w") as f:
    json.dump({"username": usuario_kaggle, "key": chave_kaggle}, f)
os.chmod("/root/.kaggle/kaggle.json", 0o600)

# 3) Baixar o dataset para a área temporária do Colab e extrair
dataset      = "walekhwatlphilip/intro-to-data-cleaning-eda-and-machine-learning"
pasta_dados  = "/content/dados_kaggle"
os.makedirs(pasta_dados, exist_ok=True)

# Lista arquivos do dataset
subprocess.run(["kaggle", "datasets", "files", "-d", dataset], check=True)

# Faz o download e descompacta
subprocess.run(["kaggle", "datasets", "download", "-d", dataset, "-p", pasta_dados, "--unzip"], check=True)

# 4) Localizar o principal CSV
arquivos_csv = sorted(
    glob.glob(pasta_dados + "/**/*.csv", recursive=True),
    key=os.path.getsize, reverse=True
)
if not arquivos_csv:
    raise FileNotFoundError("Nenhum CSV encontrado no pacote do Kaggle.")

caminho_csv = arquivos_csv[0]
print("Arquivo encontrado:", caminho_csv)

# 5) Função para tentar ler com múltiplos encodings
def ler_csv_robusto(caminho, encodings=["utf-8", "ISO-8859-1", "cp1252", "latin1"]):
    ultimo_erro = None
    for enc in encodings:
        try:
            print(f"Tentando abrir com encoding: {enc}")
            return pd.read_csv(caminho, encoding=enc), enc
        except Exception as e:
            ultimo_erro = e
            continue
    raise RuntimeError(f"Não foi possível abrir o arquivo com os encodings {encodings}. Erro: {ultimo_erro}")

# 6) Ler o CSV de forma robusta
df, usado = ler_csv_robusto(caminho_csv)
print(f"Arquivo carregado com sucesso usando encoding: {usado}")
print("Formato (linhas, colunas):", df.shape)
display(df.head(5))


obs: os encodings servem para garantir que pandas consiga abrir qualquer CSV, independentemente de como foi gravado.

utf-8, ISO-8859-1, cp1252, latin1 são encodings que podem variar dependendo de como o CSV  (Comma-Separated Values) foi salvo.



Resultado


ree

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page