Charger un fichier CSV dans une table
Jusqu'ici, vous vous êtes très bien débrouillé pour insérer des données dans des tables ! Vous allez maintenant apprendre à charger le contenu d'un fichier CSV dans une table.
Une façon de procéder serait de lire le fichier CSV ligne par ligne, de créer un dictionnaire pour chaque ligne, puis d'utiliser insert(), comme vous l'avez fait dans l'exercice précédent.
Mais il existe une méthode plus rapide avec pandas. Vous pouvez lire un fichier CSV dans un DataFrame au moyen de la fonction read_csv() (vous la connaissez sans doute déjà ; au besoin, exécutez help(pd.read_csv) dans la console pour vous rafraîchir la mémoire). Ensuite, vous pouvez appeler la méthode .to_sql() (docs) sur le DataFrame pour le charger dans une table SQL d'une base de données. Les colonnes du DataFrame doivent correspondre à celles de la table SQL.
.to_sql() accepte de nombreux paramètres, mais dans cet exercice nous utiliserons les suivants :
nameest le nom de la table SQL (en chaîne de caractères).conest la connexion à la base de données que vous utiliserez pour téléverser les données.if_existsprécise le comportement si la table existe déjà dans la base ; les valeurs possibles sont"fail","replace"et"append".index(TrueouFalse) indique s'il faut écrire l'index du DataFrame comme une colonne.
Dans cet exercice, vous allez téléverser les données du fichier census.csv dans une table existante "census". La connection à la base de données a déjà été créée pour vous.
Cette activité fait partie du cours
Introduction aux bases de données en Python
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# import pandas
import pandas as pd
# read census.csv into a DataFrame : census_df
census_df = pd.___(___, ___=___)
# rename the columns of the census DataFrame
census_df.columns = [___, ___, ___, 'pop2000', 'pop2008']