Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 34/95

JSON, CSV, Excel — Maîtriser les formats de données

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 11.2.14 : JSON, CSV, Excel — Maîtriser les formats de données

🎯 Objectif pédagogique

Comprendre les différences entre les formats de données courants (JSON, CSV, Excel, Parquet) et savoir les manipuler en Python. Vous serez capable de lire, convertir et écrire dans n'importe quel format de données.


Le format définit le "langage" des données

Marc l'a appris à ses dépens : un collègue lui envoie un CSV avec des points-virgules, Excel l'ouvre... et tout est dans une seule colonne. Comprendre les formats de données est aussi important que comprendre les données elles-mêmes.

CSV — Le format universel

import pandas as pd

# Lire un CSV standard
df = pd.read_csv("jobs.csv")

# CSV français (séparateur ;, décimale ,)
df = pd.read_csv("data_fr.csv", sep=";", decimal=",", encoding="utf-8")

# Options utiles
df = pd.read_csv("data.csv",
    header=0,              # Ligne d'en-tête (0 = première ligne)
    usecols=['company', 'salary'],  # Seulement ces colonnes
    dtype=\{'salary': int\},    # Forcer le type
    parse_dates=['date'],     # Convertir en datetime
    na_values=['N/A', 'missing', ''],  # Valeurs à traiter comme NaN
    nrows=1000               # Lire seulement 1000 lignes
)

# Écrire un CSV
df.to_csv("output.csv", index=False)
df.to_csv("output_fr.csv", index=False, sep=";", encoding="utf-8-sig")

JSON — Le format du web

import json

# Lire un fichier JSON
with open("data.json", "r", encoding="utf-8") as f:
    data = json.load(f)

# Écrire un fichier JSON
with open("output.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

# JSON → DataFrame
df = pd.read_json("data.json")

# JSON imbriqué → DataFrame (normalisation)
import pandas as pd

nested = \{
    "users": [
        \{"name": "Marc", "details": \{"age": 34, "city": "Paris"\}\},
        \{"name": "Alice", "details": \{"age": 28, "city": "Lyon"\}\}
    ]
\}
df = pd.json_normalize(nested['users'])
# Résultat : name | details.age | details.city

# DataFrame → JSON
df.to_json("output.json", orient="records", indent=2, force_ascii=False)

Excel — Le format corporate

# Lire Excel
df = pd.read_excel("report.xlsx")
df = pd.read_excel("report.xlsx", sheet_name="Q1 2026")

# Toutes les feuilles
all_sheets = pd.read_excel("report.xlsx", sheet_name=None)  # Dict de DataFrames
for name, sheet_df in all_sheets.items():
    print(f"Feuille '\{name\}': \{sheet_df.shape\}")

# Écrire Excel (avec mise en forme basique)
with pd.ExcelWriter("report.xlsx", engine="openpyxl") as writer:
    df_summary.to_excel(writer, sheet_name="Résumé", index=False)
    df_details.to_excel(writer, sheet_name="Détails", index=False)

Comparaison des formats

FormatPoidsLisible par humainSchémaVitesse lectureUsage typique
CSVLéger✅ Oui❌ Aucun⚡ RapideExport/import universel
JSONMoyen✅ Oui✅ Flexible⚡ RapideAPIs, config, web
ExcelLourd✅ Oui (logiciel)✅ Feuilles🐌 LentReporting corporate
ParquetTrès léger❌ Binaire✅ Typé⚡⚡ Très rapideBig Data, analytics
SQLiteMoyen❌ Binaire✅ SQL⚡ RapideBase de données locale

Parquet — Le format pro de la data

# Parquet = compression + types + vitesse
# Parfait pour les gros fichiers (10x plus petit que CSV, 5x plus rapide à lire)

# Écrire
df.to_parquet("data.parquet")

# Lire
df = pd.read_parquet("data.parquet")

# Comparaison sur 1M de lignes :
# CSV:     250 Mo, lecture 3.2s
# Parquet:  25 Mo, lecture 0.4s

Conversions courantes

# CSV → Excel
df = pd.read_csv("input.csv")
df.to_excel("output.xlsx", index=False)

# JSON → CSV
df = pd.read_json("api_data.json")
df.to_csv("output.csv", index=False)

# Excel → Parquet (pour l'analyse)
df = pd.read_excel("corporate_report.xlsx")
df.to_parquet("optimized.parquet")

Règle de Marc pour les formats

  • →Partager avec des humains → Excel ou CSV
  • →Envoyer à une API → JSON
  • →Stocker pour l'analyse → Parquet
  • →Archiver avec schéma → SQLite En pratique, Marc utilise CSV pour échanger, Parquet pour stocker, et JSON pour les APIs.

🏋️ Exercice pratique (15 minutes)

# Créez un pipeline de conversion
# 1. Créez un DataFrame de 10 candidatures
# 2. Exportez en CSV, JSON, Excel et Parquet
# 3. Relisez chaque format et vérifiez les shapes
# 4. Comparez les tailles de fichiers
Vérification rapide

Pourquoi le format Parquet est-il recommandé pour les gros datasets en data science ?

Vérification rapide

Quelle option utiliser pour lire un CSV français avec des points-virgules comme séparateur ?

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.