← Tous les exercices
Contrôler la table avant tout calcul
Partie 1 · ★
Un pipeline sérieux commence par la validation du support de calcul (TP, acte I) : combien de lignes, combien d'observations par actif, première et dernière date. Sans cela, tu pourrais calculer des rendements sur des séries incomplètes sans t'en rendre compte.
La table prices(date, ticker, close) est déjà créée (deux actifs A et B, 6 jours). Complète n_total (nombre de lignes de la table) puis la requête sql qui renvoie, par actif et trié par actif : ticker, COUNT(*), MIN(date), MAX(date).
import sqlite3 con = sqlite3.connect(":memory:") con.execute("CREATE TABLE prices(date TEXT, ticker TEXT, close REAL)") A = [100, 102, 101, 105, 107, 108] B = [50, 49, 51, 50, 52, 55] for i in range(6): d = f"2024-01-0{i + 1}" con.execute("INSERT INTO prices VALUES (?, ?, ?)", (d, "A", A[i])) con.execute("INSERT INTO prices VALUES (?, ?, ?)", (d, "B", B[i])) n_total = con.execute("SELECT ___ FROM prices").fetchone()[0] sql = """ SELECT ticker, COUNT(*), MIN(date), MAX(date) FROM prices GROUP BY ___ ORDER BY ticker """ rows = con.execute(sql).fetchall()
Ctrl/⌘+Entrée