All guides
IntermediateSelf-pacedFree GuideSection 32/95

APIs de données — Open Data et Kaggle

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 11.2.12 : APIs de données — Open Data et Kaggle

🎯 Objectif pédagogique

Accéder à des sources de données publiques (APIs Open Data, Kaggle, data.gouv.fr) et les charger en Python. Vous serez capable de trouver, télécharger et exploiter des données réelles pour vos analyses — pas seulement des données fictives.


Le trésor des données ouvertes

Marc a utilisé des données fictives jusqu'ici. Mais la vraie data science travaille avec des données réelles. L'Open Data est un mouvement mondial : gouvernements, entreprises et organisations publient gratuitement des données.

Sources de données essentielles

SourceTypeURLSpécialité
data.gouv.frGouvernement FRdata.gouv.frDonnées publiques françaises
KaggleCommunautékaggle.com/datasetsCompétitions, ML datasets
INSEEStatistiquesinsee.fr/apiDémographie, économie
World BankInternationaldata.worldbank.orgÉconomie mondiale
OpenWeatherMapAPIopenweathermap.orgMétéo
GitHubListesawesome-public-datasetsAgrégateur

Charger des données depuis une URL

import pandas as pd

# CSV directement depuis une URL
url = "https://raw.githubusercontent.com/datasets/covid-19/main/data/countries-aggregated.csv"
df = pd.read_csv(url)
print(df.head())
print(f"Shape: \{df.shape\}")  # (ex: 87000, 5)

# Filtrer sur la France
france = df[df['Country'] == 'France']
print(france.tail())

API REST avec requests + pandas

import requests
import pandas as pd

# Exemple : API data.gouv.fr — rechercher des jeux de données sur l'emploi
response = requests.get(
    "https://www.data.gouv.fr/api/1/datasets/",
    params=\{"q": "emploi", "page_size": 5\}
)
data = response.json()

datasets = []
for d in data['data']:
    datasets.append(\{
        'title': d['title'],
        'organization': d.get('organization', \{\}).get('name', 'N/A'),
        'frequency': d.get('frequency', 'N/A'),
        'last_update': d.get('last_update', 'N/A')
    \})

df_datasets = pd.DataFrame(datasets)
print(df_datasets)

Kaggle — Télécharger des datasets

# Installer l'API Kaggle
pip install kaggle

# Configurer (créer un token sur kaggle.com → Account → API → New Token)
# Placer kaggle.json dans ~/.kaggle/
# Télécharger un dataset
import subprocess
subprocess.run(["kaggle", "datasets", "download", "-d", 
                "promptcloud/glassdoor-job-postings", "--unzip"])

# Charger en pandas
df = pd.read_csv("glassdoor_jobs.csv")
print(df.columns.tolist())
print(df.shape)

Formats de données courants

# CSV
df = pd.read_csv("data.csv")
df = pd.read_csv("data.csv", sep=";", encoding="utf-8")  # CSV français

# JSON
df = pd.read_json("data.json")
df = pd.read_json("https://api.example.com/data")

# Excel
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")

# Plusieurs fichiers à la fois
import glob
files = glob.glob("data/*.csv")
df = pd.concat([pd.read_csv(f) for f in files], ignore_index=True)

Exercice complet : analyse de données réelles

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Charger un dataset réel (Stack Overflow Survey résumé)
url = "https://raw.githubusercontent.com/datasets/world-cities/master/data/world-cities.csv"
cities = pd.read_csv(url)

print(cities.head())
print(f"\n\{cities.shape[0]\} villes dans le monde")

# Top 10 pays par nombre de villes
top_countries = cities['country'].value_counts().head(10)

plt.figure(figsize=(10, 6))
sns.barplot(x=top_countries.values, y=top_countries.index, palette='viridis')
plt.title("Top 10 pays par nombre de villes")
plt.xlabel("Nombre de villes")
plt.tight_layout()
plt.show()

RGPD et données personnelles

Les données ouvertes sont anonymisées. Mais si vous travaillez avec des données contenant des informations personnelles (noms, emails), vous devez respecter le RGPD. Marc, en bon ex-financier, le sait : les amendes RGPD peuvent atteindre 4% du CA mondial.

🏋️ Exercice pratique (20 minutes)

  1. →Allez sur data.gouv.fr, cherchez "offres emploi"
  2. →Téléchargez un CSV d'offres d'emploi
  3. →Chargez-le avec pandas
  4. →Explorez : shape, colonnes, types, premières lignes
  5. →Créez un graphique montrant les métiers les plus demandés
Quick Check

Quel est l'avantage principal de l'Open Data pour un data scientist débutant ?

Quick Check

Comment charger un fichier CSV depuis une URL directement dans pandas ?

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.