Skip to content

đŸ‡«đŸ‡· Skill professionnel pour Claude Code - AccĂšs au catalogue de donnĂ©es ouvertes data.gouv.fr

License

Notifications You must be signed in to change notification settings

benoitvx/data-gouv-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

đŸ‡«đŸ‡· data.gouv.fr - Documentation et Librairie Python

License Python Documentation Version

Documentation complÚte et librairie Python pour accéder aux données ouvertes françaises via data.gouv.fr

📖 À propos

Ce repository fournit une documentation complÚte et une librairie Python pour travailler avec les données publiques françaises de data.gouv.fr.

⚠ Important : Ce n'est PAS un plugin avec des commandes slash interactives, mais plutĂŽt :

  • 📚 Une documentation dĂ©taillĂ©e de l'API data.gouv.fr et des datasets
  • 🐍 Une librairie Python rĂ©utilisable (datagouv.py)
  • 📊 Des datasets documentĂ©s (IQVIA vaccinations, qualitĂ© de l'eau, etc.)
  • 💡 Des exemples de code prĂȘts Ă  l'emploi
  • 🔗 Des liens vers le MCP officiel data.gouv.fr

Pour des commandes interactives dans Claude Code (requĂȘtes SQL, langage naturel), utilisez le MCP officiel data.gouv.fr.


✹ FonctionnalitĂ©s

  • 🔍 Recherche intelligente de datasets via l'API officielle
  • đŸ“„ TĂ©lĂ©chargement automatique avec mise en cache
  • đŸ§č Parsing avancĂ© des formats français (CSV ;, dates DD/MM/YYYY, dĂ©cimales ,)
  • 📊 Chargement direct dans pandas DataFrames
  • 📚 Documentation complĂšte des datasets les plus utilisĂ©s
  • 🐍 Librairie Python rĂ©utilisable et testĂ©e
  • 💡 Exemples pratiques pour chaque cas d'usage

🚀 Installation

Cloner le repository

git clone https://github.com/benoitvx/data-gouv-skill.git
cd data-gouv-skill

Installer les dépendances Python

pip install pandas requests openpyxl

Utiliser la librairie

from skills.data-gouv.lib.datagouv import DataGouvAPI

api = DataGouvAPI()
results = api.search_datasets("vaccination")

📚 Documentation

Consulter en ligne

Parcourez la documentation directement sur GitHub :

🆕 Deux approches disponibles

Notre librairie Python (simple & rapide)

from skills.data-gouv.lib.datagouv import DataGouvAPI
api = DataGouvAPI()
df = api.load_csv(url, cache=True)  # Cache, offline, portable

Idéal pour :

  • Scripts automatisĂ©s
  • DĂ©veloppement local
  • Analyse offline
  • Notebooks Jupyter

MCP officiel data.gouv.fr (requĂȘtes avancĂ©es)

"Dans le dataset IQVIA, trouve les dĂ©partements oĂč
les vaccinations ont augmenté de plus de 50%"

Idéal pour :

  • RequĂȘtes SQL complexes
  • Questions en langage naturel
  • CrĂ©ation de datasets
  • IntĂ©gration Claude Desktop/Cursor

📖 Guide complet : GUIDE_CHOIX.md
🔗 MCP officiel : https://github.com/datagouv/datagouv-mcp

📖 Exemple d'utilisation

from skills.data-gouv.lib.datagouv import DataGouvAPI

# Initialiser l'API
api = DataGouvAPI()

# Rechercher des datasets
results = api.search_datasets("vaccination", organization="iqvia-france")
for dataset in results['data']:
    print(f"📊 {dataset['title']}")

# Charger directement un CSV
df = api.load_csv("https://www.data.gouv.fr/fr/datasets/r/resource-id")
print(f"✅ ChargĂ© : {len(df)} lignes")

# Obtenir la derniĂšre ressource d'un dataset
resource = api.get_latest_resource("dataset-id", format="csv")
df = api.load_csv(resource['url'])

📊 Datasets documentĂ©s

Le skill inclut une documentation détaillée pour les datasets les plus utilisés :

Santé

  • Suivi hebdomadaire des campagnes de vaccination
  • DĂ©tails par rĂ©gion, dĂ©partement, Ăąge et type de site
  • DonnĂ©es depuis 2019
  • RĂ©sultats des contrĂŽles sanitaires commune par commune
  • Plus de 300,000 analyses par an
  • ParamĂštres microbiologiques, chimiques et physico-chimiques

Administration

  • Calendrier scolaire par zone acadĂ©mique
  • Code Officiel GĂ©ographique (INSEE)
  • Population lĂ©gale des communes

Environnement

  • QualitĂ© de l'air
  • Production d'Ă©nergie renouvelable
  • Stations de recharge Ă©lectrique

🎯 Cas d'usage

Analyser les vaccinations par région

from skills.data-gouv.lib.datagouv import DataGouvAPI
import pandas as pd

api = DataGouvAPI()

# Charger les données de vaccination
results = api.search_datasets("vaccination grippe 2025-2026", organization="iqvia-france")
dataset_id = results['data'][0]['id']
resource = api.get_latest_resource(dataset_id, format='csv')
df = api.load_csv(resource['url'])

# Filtrer par région
df_na = df[df['code_region'] == '75']  # Nouvelle-Aquitaine
total = df_na['nb_doses'].sum()
print(f"💉 Total vaccinations en Nouvelle-Aquitaine : {total:,}")

Vérifier la qualité de l'eau

# Charger les données
dataset_id = "resultats-du-controle-sanitaire-de-leau-distribuee-commune-par-commune"
dataset = api.get_dataset(dataset_id)

# Obtenir les données pour La Rochelle (17300)
# ... (voir documentation complĂšte dans skills/data-gouv/datasets/eau-potable.md)

# Calculer le taux de conformité
taux = (results['conforme'] == 'O').sum() / len(results) * 100
print(f"✅ Taux de conformitĂ© : {taux:.1f}%")

Comparer des campagnes de vaccination

# Charger 2 campagnes
df_2025 = api.load_csv(url_2025)
df_2024 = api.load_csv(url_2024)

# Comparer
evolution = ((df_2025['nb_doses'].sum() - df_2024['nb_doses'].sum()) / df_2024['nb_doses'].sum()) * 100
print(f"📈 Évolution : {evolution:+.1f}%")

đŸ—‚ïž Structure du projet

data-gouv-skill/
├── skills/data-gouv/
│   ├── SKILL.md                 # Documentation principale (point d'entrĂ©e)
│   │
│   ├── lib/
│   │   └── datagouv.py         # Librairie Python
│   │
│   ├── datasets/                # Documentation dĂ©taillĂ©e
│   │   ├── iqvia-vaccination.md
│   │   ├── eau-potable.md
│   │   └── ...
│   │
│   └── examples/                # Exemples de code
│       ├── vaccination_analysis.py
│       ├── water_quality.py
│       └── ...
│
├── scripts/
│   ├── sync-datasets.sh         # Synchroniser les mĂ©tadonnĂ©es
│   └── update-metadata.py       # Mettre à jour la documentation
│
├── README.md                    # Ce fichier
└── LICENSE.md                   # Licence Ouverte 2.0

🔧 API Reference

Classe DataGouvAPI

class DataGouvAPI:
    def __init__(self, cache_dir: Optional[str] = None)

    def search_datasets(
        self, query: str,
        organization: Optional[str] = None,
        tag: Optional[str] = None,
        page_size: int = 20
    ) -> Dict[str, Any]

    def get_dataset(self, dataset_id: str) -> Optional[Dict[str, Any]]

    def get_latest_resource(
        self, dataset_id: str,
        format: str = 'csv'
    ) -> Optional[Dict[str, Any]]

    def download_resource(
        self, resource_url: str,
        cache: bool = True
    ) -> Optional[bytes]

    def load_csv(
        self, resource_url: str,
        sep: Optional[str] = None,
        encoding: Optional[str] = None,
        decimal: str = ','
    ) -> Optional[pd.DataFrame]

Fonctions utilitaires

def quick_search(query: str, limit: int = 5) -> List[Dict[str, Any]]
def load_dataset_csv(dataset_id: str, resource_index: int = 0) -> Optional[pd.DataFrame]

💡 Bonnes pratiques

1. Utiliser le cache

api = DataGouvAPI(cache_dir="~/.cache/datagouv")
df = api.load_csv(url)  # cache automatique

2. Gérer les gros fichiers

# Charger par chunks
chunks = []
for chunk in pd.read_csv(url, chunksize=10000, sep=';'):
    chunk_filtered = chunk[chunk['region'] == 'Nouvelle-Aquitaine']
    chunks.append(chunk_filtered)
df = pd.concat(chunks)

3. Valider les données

df = api.load_csv(url)
if df is not None:
    print(f"✓ {len(df)} lignes, {len(df.columns)} colonnes")
else:
    print(f"✗ Erreur de chargement")

đŸ€ Contribution

Les contributions sont les bienvenues !

Ajouter un nouveau dataset documenté

  1. Créer skills/data-gouv/datasets/nom-dataset.md
  2. Suivre le modĂšle des datasets existants
  3. Inclure des exemples de code concrets
  4. Soumettre une pull request

Guidelines

  • Utiliser le format markdown
  • Inclure des exemples de code testĂ©s
  • Documenter les colonnes importantes
  • Ajouter des cas d'usage pratiques

📚 Ressources

Documentation officielle

Organisations principales sur data.gouv.fr

  • INSEE : Statistiques, population, Ă©conomie
  • MinistĂšre de la SantĂ© : SantĂ© publique, qualitĂ© de l'eau
  • IQVIA France : Campagnes de vaccination
  • SantĂ© Publique France : Surveillance sanitaire
  • MinistĂšre de l'Éducation : DonnĂ©es scolaires

📄 Licence

Ce projet est publié sous Licence Ouverte 2.0 (compatible Creative Commons BY).

Vous ĂȘtes libre de :

  • ✅ RĂ©utiliser les donnĂ©es et le code
  • ✅ Modifier et adapter
  • ✅ Usage commercial autorisĂ©

Sous condition de :

  • 📝 Mentionner la paternitĂ© (source + date)

🙏 Remerciements

  • data.gouv.fr pour l'API et les donnĂ©es ouvertes
  • Etalab pour la plateforme et la Licence Ouverte
  • La communautĂ© des producteurs de donnĂ©es publiques
  • Claude Code par Anthropic

📞 Support


Auteur : Benoit Vinceneux
Version : 2.1.1
DerniĂšre mise Ă  jour : 2025-12-02

⭐ Si ce projet vous est utile, n'hésitez pas à mettre une étoile sur GitHub !

About

đŸ‡«đŸ‡· Skill professionnel pour Claude Code - AccĂšs au catalogue de donnĂ©es ouvertes data.gouv.fr

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages