Introduction aux bases de données

Ingestion de données rationalisée avec pandas

Amany Mahfouz

Instructor

Bases de données relationnelles

  • Les données sur des entités sont organisées en tables
  • Chaque ligne ou enregistrement est une instance d'entité
  • Chaque colonne décrit un attribut
  • Les tables peuvent être liées par des clés uniques
  • Gèrent plus de données, plusieurs usagers simultanés et des contrôles de qualité
  • Des types de données sont définis pour chaque colonne
  • SQL (Structured Query Language) pour interagir avec les bases de données
Ingestion de données rationalisée avec pandas

Bases relationnelles courantes

Logo Microsoft SQL Server

Logo Oracle

  • Les bases SQLite sont des fichiers informatiques

Logo PostgreSQL

Logo SQLite

Ingestion de données rationalisée avec pandas

Connexion aux bases de données

  • Processus en deux étapes :
    1. Créer un moyen de se connecter à la base
    2. Interroger la base

Image d'une base de données

Ingestion de données rationalisée avec pandas

Créer un moteur de base de données

Logo SQLAlchemy

  • create_engine() de sqlalchemy crée un moteur pour gérer les connexions
    • Nécessite l'URL chaîne de la base à joindre
    • Format d'URL SQLite : sqlite:///filename.db
Ingestion de données rationalisée avec pandas

Interroger des bases de données

  • pd.read_sql(query, engine) pour charger des données d'une base
  • Arguments
    • query : chaîne SQL à exécuter ou nom de table à charger
    • engine : objet moteur/connexion à la base
Ingestion de données rationalisée avec pandas

Rappel SQL : SELECT

  • Sert à extraire des données d'une base
  • Syntaxe de base :
    SELECT [column_names] FROM [table_name];
    
  • Pour obtenir toutes les données d'une table :
    SELECT * FROM [table_name];
    
  • Style de code : mots-clés en MAJUSCULES, point-virgule (;) pour terminer l'instruction
Ingestion de données rationalisée avec pandas

Obtenir des données d'une base de données

# Charger pandas et create_engine de sqlalchemy
import pandas as pd
from sqlalchemy import create_engine

# Créer un moteur de base pour gérer les connexions engine = create_engine("sqlite:///data.db")
# Charger toute la table weather par son nom weather = pd.read_sql("weather", engine)
Ingestion de données rationalisée avec pandas
# Créer un moteur de base pour gérer les connexions
engine = create_engine("sqlite:///data.db")

# Charger toute la table weather avec du SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
Ingestion de données rationalisée avec pandas

Passons à la pratique !

Ingestion de données rationalisée avec pandas

Preparing Video For Download...