Ce guide explique comment connecter SQLite et les fichiers CSV en Python, en couvrant les bases et les applications avancées. Nous expliquerons étape par étape comment créer une base de données, insérer et récupérer des données, ainsi que lire et écrire des fichiers CSV. Ce guide fournira des instructions faciles à suivre pour les débutants et vous aidera à maîtriser les compétences nécessaires pour rendre la gestion des données plus efficace.
Bases de Python et SQLite
Pour utiliser SQLite avec Python, vous devez d’abord importer la bibliothèque SQLite. Python inclut la bibliothèque sqlite3 dans sa bibliothèque standard, ce qui permet de manipuler facilement les bases de données SQLite.
Importer la bibliothèque SQLite
Tout d’abord, vous devez importer la bibliothèque sqlite3 dans votre script Python. Cela vous donnera accès aux fonctions permettant d’interagir avec une base de données SQLite.
import sqlite3
Établir une connexion à la base de données
Ensuite, vous vous connectez à la base de données SQLite. Si le fichier de la base de données n’existe pas, un nouveau fichier de base de données sera créé.
# Connexion à la base de données
conn = sqlite3.connect('example.db')
Créer un curseur
Pour exécuter des opérations sur la base de données, vous devez créer un curseur. Le curseur est utilisé pour exécuter des instructions SQL et récupérer leurs résultats.
# Créer un curseur
cur = conn.cursor()
Créer une table
Vous pouvez maintenant exécuter une instruction SQL pour créer une table. Ici, nous allons créer une table « users » pour stocker des informations sur les utilisateurs.
# Instruction SQL pour créer la table
create_table_sql = '''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
'''
# Exécuter l'instruction SQL
cur.execute(create_table_sql)
Sauvegarder les modifications de la base de données
Pour sauvegarder les modifications apportées à la base de données, utilisez la méthode commit().
# Sauvegarder les modifications
conn.commit()
Fermer la connexion à la base de données
Une fois le travail terminé, vous devez fermer la connexion à la base de données pour libérer les ressources.
# Fermer la connexion
conn.close()
Dans cette section, nous avons abordé les étapes de base pour utiliser SQLite avec Python. Dans la prochaine section, nous expliquerons en détail comment créer une base de données spécifique.
Créer une base de données SQLite
Dans cette section, nous allons détailler les étapes pour créer une nouvelle base de données SQLite en utilisant Python. Vous apprendrez à configurer et manipuler une base de données à travers un exemple pratique.
Créer une nouvelle base de données
Nous allons utiliser la bibliothèque sqlite3 pour créer une nouvelle base de données SQLite en Python. Comme nous l’avons mentionné précédemment, cette bibliothèque est déjà incluse dans Python.
import sqlite3
# Créer ou se connecter à un fichier de base de données example.db
conn = sqlite3.connect('new_example.db')
Créer un curseur et définir la table
Après vous être connecté à la nouvelle base de données, vous allez créer une table. La définition de la table utilise une instruction SQL.
# Créer un curseur
cur = conn.cursor()
# Instruction SQL pour définir la nouvelle table
create_table_sql = '''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
price REAL
)
'''
# Exécuter l'instruction SQL pour créer la table
cur.execute(create_table_sql)
Créer plusieurs tables
Il est également possible de créer plusieurs tables dans une même base de données. Dans l’exemple ci-dessous, nous allons créer une table « categories » en plus de la table « products ».
# Définir la table categories
create_categories_table_sql = '''
CREATE TABLE IF NOT EXISTS categories (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
)
'''
# Exécuter l'instruction SQL pour créer la table categories
cur.execute(create_categories_table_sql)
Vérifier la création des tables
Pour vérifier les tables créées, vous pouvez obtenir la liste des tables présentes dans la base de données.
# Instruction SQL pour obtenir la liste des tables
cur.execute("SELECT name FROM sqlite_master WHERE type='table';")
# Obtenir et afficher les résultats
tables = cur.fetchall()
print("Tables dans la base de données:", tables)
Sauvegarder les modifications et fermer la connexion
Après avoir créé les tables, sauvegardez les modifications et fermez la connexion à la base de données.
# Sauvegarder les modifications
conn.commit()
# Fermer la connexion
conn.close()
Dans cette section, nous avons expliqué comment créer une nouvelle base de données SQLite et définir des tables. Dans la section suivante, nous détaillerons comment insérer des données dans la base de données.
Insérer des données dans la base de données
Dans cette section, nous allons aborder la manière d’insérer des données dans une base de données SQLite en utilisant Python. Vous apprendrez à ajouter des données efficacement à la base de données.
Préparer l’insertion des données
Tout d’abord, vous devez vous connecter à la base de données et créer un curseur.
import sqlite3
# Connexion à la base de données
conn = sqlite3.connect('new_example.db')
cur = conn.cursor()
Insérer une ligne de données
Utilisez une instruction SQL INSERT pour insérer une ligne de données dans la table. Dans cet exemple, nous allons insérer des données dans la table « products ».
# Données à insérer
product_data = (1, 'Laptop', 1200.99)
# Instruction SQL pour insérer les données
insert_product_sql = 'INSERT INTO products (id, name, price) VALUES (?, ?, ?)'
# Exécuter l'instruction SQL
cur.execute(insert_product_sql, product_data)
Insérer plusieurs lignes de données
Utilisez la méthode executemany() pour insérer plusieurs lignes de données à la fois.
# Liste de données à insérer
multiple_products_data = [
(2, 'Smartphone', 799.99),
(3, 'Tablet', 499.99),
(4, 'Monitor', 199.99)
]
# Instruction SQL pour insérer les données en masse
cur.executemany(insert_product_sql, multiple_products_data)
Vérifier l’insertion des données
Pour vérifier que les données ont été correctement insérées, vous pouvez récupérer les données de la table et les afficher.
# Récupérer les données
cur.execute('SELECT * FROM products')
# Afficher les résultats
rows = cur.fetchall()
for row in rows:
print(row)
Gestion des erreurs
En cas d’erreur lors de l’insertion des données, il est important de mettre en place une gestion des erreurs avec un bloc try-except.
try:
# Insérer des données
cur.execute(insert_product_sql, (5, 'Keyboard', 49.99))
conn.commit()
except sqlite3.Error as e:
print("Une erreur s'est produite :", e)
conn.rollback()
Sauvegarder les modifications et fermer la connexion
Une fois les données insérées, sauvegardez les modifications et fermez la connexion à la base de données.
# Sauvegarder les modifications
conn.commit()
# Fermer la connexion
conn.close()
Cette section explique comment insérer des données dans une base de données SQLite. Dans la section suivante, nous verrons comment récupérer des données depuis la base de données.
Récupérer des données depuis la base de données
Dans cette section, nous expliquons comment récupérer des données depuis une base de données SQLite. Vous apprendrez à rechercher et afficher des données efficacement en Python.
Établir la connexion à la base de données et créer un curseur
Tout d’abord, vous devez vous connecter à la base de données et créer un curseur.
import sqlite3
# Connexion à la base de données
conn = sqlite3.connect('new_example.db')
cur = conn.cursor()
Récupérer toutes les données
Pour récupérer toutes les données, utilisez une instruction SELECT. Ici, nous allons récupérer toutes les données de la table « products ».
# Récupérer les données
cur.execute('SELECT * FROM products')
# Afficher les résultats
rows = cur.fetchall()
for row in rows:
print(row)
Récupérer des données selon des critères spécifiques
Utilisez la clause WHERE pour récupérer des données correspondant à des critères spécifiques. Par exemple, nous allons récupérer les produits dont le prix est supérieur ou égal à 500 $.
# Récupérer des données avec une condition
cur.execute('SELECT * FROM products WHERE price >= 500')
# Afficher les résultats
rows = cur.fetchall()
for row in rows:
print(row)
Récupérer des colonnes spécifiques
Il est également possible de ne récupérer que des colonnes spécifiques. Par exemple, récupérons uniquement le nom et le prix des produits.
# Récupérer des colonnes spécifiques
cur.execute('SELECT name, price FROM products')
# Afficher les résultats
rows = cur.fetchall()
for row in rows:
print(row)
Spécifier l’ordre des données
Utilisez la clause ORDER BY pour spécifier l’ordre des données. Par exemple, vous pouvez récupérer les données triées par prix croissant.
# Récupérer les données par ordre croissant de prix
cur.execute('SELECT * FROM products ORDER BY price ASC')
# Afficher les résultats
rows = cur.fetchall()
for row in rows:
print(row)
Limiter le nombre de résultats
Utilisez la clause LIMIT pour limiter le nombre de lignes récupérées. Par exemple, vous pouvez récupérer uniquement les deux premières lignes.
# Limiter le nombre de lignes
cur.execute('SELECT * FROM products LIMIT 2')
# Afficher les résultats
rows = cur.fetchall()
for row in rows:
print(row)
Fermer la connexion
Après avoir récupéré les données, fermez la connexion à la base de données pour libérer les ressources.
# Fermer la connexion
conn.close()
Dans cette section, nous avons expliqué les bases de la récupération des données d’une base de données SQLite. La prochaine section détaillera comment lire des fichiers CSV en Python.
Lire des fichiers CSV
Dans cette section, nous allons expliquer comment lire des fichiers CSV en Python. Les fichiers CSV sont un format couramment utilisé pour stocker des données, et Python offre des bibliothèques standard permettant de les manipuler facilement.
Importer le module csv
Pour manipuler des fichiers CSV, vous devez importer le module csv de la bibliothèque standard de Python.
import csv
Lire un fichier CSV
Utilisez csv.reader pour lire un fichier CSV. Dans cet exemple, nous allons lire un fichier nommé sample.csv.
# Lire un fichier CSV
with open('sample.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
# Lire l'en-tête
header = next(csvreader)
print('En-tête:', header)
# Lire les données
for row in csvreader:
print(row)
Obtenir le contenu du fichier CSV sous forme de liste
Utilisez csv.reader pour récupérer le contenu du fichier CSV sous forme de liste.
# Lire un fichier CSV
with open('sample.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
# Obtenir les données sous forme de liste
data = list(csvreader)
for row in data:
print(row)
Obtenir le contenu du fichier CSV sous forme de dictionnaire
Utilisez csv.DictReader pour obtenir le contenu du fichier CSV sous forme de dictionnaire. Cela vous permet de traiter chaque ligne comme un dictionnaire.
# Lire un fichier CSV sous forme de dictionnaire
with open('sample.csv', newline='') as csvfile:
csvreader = csv.DictReader(csvfile)
# Lire les données
for row in csvreader:
print(row)
Gestion des erreurs lors de la lecture du fichier CSV
Il est important de mettre en place une gestion des erreurs lors de la lecture d’un fichier, pour traiter les erreurs éventuelles.
try:
with open('sample.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
# Lire l'en-tête
header = next(csvreader)
print('En-tête:', header)
# Lire les données
for row in csvreader:
print(row)
except FileNotFoundError:
print("Le fichier CSV est introuvable.")
except Exception as e:
print("Une erreur s'est produite:", e)
Cette section explique les bases de la lecture de fichiers CSV en Python. La section suivante traitera de l’insertion de données CSV dans une base de données SQLite.
Insérer les données CSV dans SQLite
Dans cette section, nous allons expliquer comment insérer des données CSV dans une base de données SQLite. Vous apprendrez à importer efficacement les données CSV dans la base de données.
Lire un fichier CSV
Nous commencerons par lire un fichier CSV. Vous utiliserez la méthode expliquée dans la section précédente.
import csv
import sqlite3
# Lire un fichier CSV
with open('sample.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
header = next(csvreader) # Lire l'en-tête
data = list(csvreader) # Obtenir les données sous forme de liste
Connexion à la base de données SQLite
Ensuite, nous allons nous connecter à la base de données SQLite et créer un curseur.
# Connexion à la base de données SQLite
conn = sqlite3.connect('new_example.db')
cur = conn.cursor()
Préparer la table
Assurez-vous que la table pour insérer les données CSV existe déjà. Ici, nous utiliserons la table « products ».
# Créer la table si elle n'existe pas
create_table_sql = '''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
price REAL
)
'''
cur.execute(create_table_sql)
Insérer les données
Nous allons insérer les données CSV dans la base de données SQLite en utilisant la méthode executemany(), qui permet d’insérer plusieurs lignes à la fois.
# Instruction SQL pour insérer les données
insert_product_sql = 'INSERT INTO products (id, name, price) VALUES (?, ?, ?)'
# Insérer les données en masse
cur.executemany(insert_product_sql, data)
Vérification après l’insertion des données
Pour vérifier que les données ont été insérées correctement, vous pouvez récupérer les données de la base de données et les afficher.
# Récupérer et afficher les données
cur.execute('SELECT * FROM products')
rows = cur.fetchall()
for row in rows:
print(row)
Gestion des erreurs
Nous allons mettre en place une gestion des erreurs pour traiter d’éventuelles erreurs lors de l’insertion des données.
try:
# Insérer les données en masse
cur.executemany(insert_product_sql, data)
conn.commit()
except sqlite3.Error as e:
print("Une erreur s'est produite :", e)
conn.rollback()
Sauvegarder les modifications et fermer la connexion
Après avoir inséré les données, nous sauvegardons les modifications et fermons la connexion à la base de données.
# Sauvegarder les modifications
conn.commit()
# Fermer la connexion
conn.close()
Cette section a expliqué comment insérer des données CSV dans une base de données SQLite. Dans la section suivante, nous verrons comment exporter des données depuis une base de données SQLite vers un fichier CSV.
Exporter des données de SQLite vers un fichier CSV
Dans cette section, nous allons expliquer comment récupérer des données depuis une base de données SQLite et les exporter dans un fichier CSV. Vous apprendrez à enregistrer les données de la base de données en format CSV à l’aide de Python.
Connexion à la base de données SQLite
Tout d’abord, nous nous connectons à la base de données SQLite et créons un curseur.
import sqlite3
# Connexion à la base de données SQLite
conn = sqlite3.connect('new_example.db')
cur = conn.cursor()
Récupérer les données
Ensuite, nous allons récupérer les données que nous voulons exporter depuis la base de données. Ici, nous allons récupérer toutes les données de la table « products ».
# Récupérer les données
cur.execute('SELECT * FROM products')
# Sauvegarder les résultats dans une liste
rows = cur.fetchall()
Créer un fichier CSV et écrire les données
Nous allons ensuite écrire les données récupérées dans un fichier CSV en utilisant csv.writer.
import csv
# Créer un fichier CSV
with open('exported_data.csv', 'w', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
# Écrire l'en-tête
header = ['id', 'name', 'price']
csvwriter.writerow(header)
# Écrire les données
csvwriter.writerows(rows)
Gestion des erreurs
Nous allons implémenter une gestion des erreurs pour traiter d’éventuelles erreurs lors de l’exportation des données.
try:
# Créer le fichier CSV
with open('exported_data.csv', 'w', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
# Écrire l'en-tête
header = ['id', 'name', 'price']
csvwriter.writerow(header)
# Écrire les données
csvwriter.writerows(rows)
except Exception as e:
print("Une erreur s'est produite lors de l'exportation des données :", e)
Vérification après l’exportation
Une fois les données exportées, nous allons ouvrir le fichier CSV pour vérifier son contenu.
# Lire le fichier CSV et afficher le contenu
with open('exported_data.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
for row in csvreader:
print(row)
Fermer la connexion
Après avoir exporté les données, fermez la connexion à la base de données pour libérer les ressources.
# Fermer la connexion
conn.close()
Cette section a expliqué comment exporter des données depuis une base de données SQLite vers un fichier CSV. La section suivante traitera des exemples d’application avancée pour l’analyse de données et la création de rapports.
Exemples pratiques : Analyse de données et création de rapports
Cette section présente des exemples d’application avancée en connectant SQLite et CSV pour l’analyse de données et la création de rapports. Vous apprendrez à analyser les données en Python et à en tirer des informations.
Importer et prétraiter les données
Nous commencerons par importer les données d’un fichier CSV dans SQLite et effectuer un prétraitement des données.
import csv
import sqlite3
# Lire un fichier CSV
with open('sample.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
header = next(csvreader)
data = list(csvreader)
# Connexion à la base de données SQLite
conn = sqlite3.connect('analysis_example.db')
cur = conn.cursor()
# Créer la table
cur.execute('''
CREATE TABLE IF NOT EXISTS sales (
id INTEGER PRIMARY KEY,
product_name TEXT NOT NULL,
quantity INTEGER,
price REAL,
date TEXT
)
''')
# Insérer les données
insert_sql = 'INSERT INTO sales (id, product_name, quantity, price, date) VALUES (?, ?, ?, ?, ?)'
cur.executemany(insert_sql, data)
# Sauvegarder les modifications
conn.commit()
Analyse des données
Utilisez les fonctions d’agrégation d’SQLite pour analyser les données. Par exemple, nous allons calculer les ventes totales pour chaque produit.
# Calculer les ventes totales par produit
cur.execute('''
SELECT product_name, SUM(quantity * price) as total_sales
FROM sales
GROUP BY product_name
ORDER BY total_sales DESC
''')
# Afficher les résultats
results = cur.fetchall()
for row in results:
print(f"Produit: {row[0]}, Ventes totales: {row[1]}")
Analyse des données temporelles
Ensuite, nous allons analyser des données temporelles. Par exemple, nous allons calculer les ventes mensuelles.
# Calculer les ventes mensuelles
cur.execute('''
SELECT strftime('%Y-%m', date) as month, SUM(quantity * price) as monthly_sales
FROM sales
GROUP BY month
ORDER BY month
''')
# Afficher les résultats
monthly_sales = cur.fetchall()
for row in monthly_sales:
print(f"Mois: {row[0]}, Ventes mensuelles: {row[1]}")
Visualisation des données
Nous allons utiliser matplotlib pour visualiser les données. Par exemple, nous allons afficher les ventes mensuelles sous forme de graphique.
import matplotlib.pyplot as plt
# Afficher les ventes mensuelles sous forme de graphique
months = [row[0] for row in monthly_sales]
sales = [row[1] for row in monthly_sales]
plt.plot(months, sales, marker='o')
plt.title('Ventes mensuelles')
plt.xlabel('Mois')
plt.ylabel('Ventes')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
Création de rapports
Créez un rapport des résultats de l’analyse. Ce rapport peut combiner texte et graphiques.
# Création du rapport
report = """
Rapport d'analyse des données
1. Ventes totales par produit
------------------
"""
for row in results:
report += f"Produit: {row[0]}, Ventes totales: {row[1]}\n"
report += "\n2. Ventes mensuelles\n------------------\n"
for row in monthly_sales:
report += f"Mois: {row[0]}, Ventes mensuelles: {row[1]}\n"
# Sauvegarder le rapport dans un fichier
with open('sales_report.txt', 'w') as report_file:
report_file.write(report)
Résumé
Dans cette section, nous avons montré comment connecter SQLite et CSV pour effectuer une analyse de données et créer des rapports. Vous avez appris à analyser les données et à en tirer des informations précieuses.
La prochaine section proposera des exercices pour appliquer ce que vous avez appris.
Exercices
Dans cette section, nous proposons des exercices pour vous aider à pratiquer ce que vous avez appris. À travers ces exercices, vous comprendrez mieux comment utiliser SQLite et CSV pour manipuler et analyser les données.
Exercice 1 : Importer de nouvelles données CSV
Créez un fichier CSV avec des données produits (new_products.csv) et importez-le dans une base de données SQLite. Créez une nouvelle table pour stocker les données.
- Contenu du fichier CSV:
id,product_name,quantity,price,date 6,Headphones,150,99.99,2024-01-05 7,Smartwatch,200,199.99,2024-02-10 8,Speaker,100,149.99,2024-03-15
- Étapes:
- Se connecter à la base de données SQLite
- Créer une nouvelle table (par exemple, new_products)
- Lire les données du fichier CSV et insérer dans la table
Exercice 2 : Récupérer des données sous certaines conditions
Récupérez les données de la table sales qui respectent une certaine condition, par exemple, récupérez les produits dont le prix est supérieur à 100 $.
- Condition:
- Récupérer les produits dont le prix est supérieur à 100 $
- Afficher les résultats
- Étapes:
- Se connecter à la base de données SQLite
- Utiliser une instruction SQL SELECT avec une condition
- Afficher les résultats
Exercice 3 : Analyse et visualisation des données
Calculez les ventes mensuelles et affichez-les dans un graphique à barres. Cela vous permettra de visualiser les variations saisonnières des ventes.
- Étapes:
- Récupérer les données des ventes mensuelles depuis la base de données SQLite
- Utiliser matplotlib pour créer un graphique à barres
- Afficher le graphique
Exercice 4 : Exporter des données
Exportez les données de la table sales dans un fichier CSV. Vérifiez le contenu du fichier CSV exporté.
- Étapes:
- Se connecter à la base de données SQLite
- Récupérer les données de la table sales
- Écrire les données dans un fichier CSV
- Vérifier le contenu du fichier CSV
Exercice 5 : Créer un rapport d’analyse de données
Analysez les données des ventes entre janvier et mars 2024 et créez un rapport contenant les résultats et un graphique.
- Étapes:
- Récupérer les données de la période sélectionnée
- Analyser et résumer les données
- Créer un rapport avec les résultats et inclure un graphique
Ces exercices vous aideront à renforcer vos compétences en manipulation et analyse de données avec SQLite et CSV. Résolvez ces problèmes pour maîtriser les opérations de données dans des projets réels.
Résumé
Ce guide vous a montré comment connecter SQLite et CSV en Python, en abordant des sujets tels que les opérations de base de données, l’importation et l’exportation de données, et l’analyse de données. Vous avez appris à utiliser Python pour gérer efficacement les données et en tirer des informations précieuses.
- Création et opérations de base de données SQLite
- Insertion et récupération de données
- Lecture de fichiers CSV et insertion dans la base de données
- Exportation et analyse des données
En maîtrisant ces compétences, vous pouvez rendre la gestion des données plus efficace et réaliser des analyses approfondies. Utilisez les exercices proposés pour mettre en pratique ce que vous avez appris et renforcer vos compétences en gestion de données.
Continuez à améliorer vos compétences en traitement et analyse de données pour vous préparer à travailler sur des projets plus complexes. L’intégration de Python, SQLite et CSV constitue un outil puissant pour résoudre de nombreux défis liés aux données.
Nous espérons que ce guide vous aidera à améliorer vos compétences en gestion et analyse de données.