Open Datas
Un exemple de données ouvertes

Plateforme ouverte des données publiques françaises

Données du RNE pour les conseillers municipaux - extrait en csv
1. les conseillers municipaux ;
- les conseillers communautaires ;
- les conseillers départementaux ;
- les conseillers régionaux ;
- les membres des assemblées des collectivités à statut particulier ;
- les représentants au Parlement européen ;
- les sénateurs ;
- les députés ;
- les maires.
En bas de page, vous pourrez observer les réutilisations de ces documents:

exemples de réutilisation des données ouvertes sur les elus municipaux
Exploration et traitement de données
Télécharger sur le site gouvernemental le fichier
ldes élus municipaux ;
, au format .csv
Ouvrir un nouveau notebook, ou bien un nouveau fichier dans votre IDE python (Spyder ou Pyzo). Déplacer le fichier *.csv
dans le même dossier que le notebook/fichier python.
Lire et stocker le contenu du fichier dans une liste python que vous appelerez table
.
On pourra s’aider:
- du dernier paragraphe de la page Python > entrées / sorties pour importer le fichier csv.
- du TP sur les algorithmes de recherche dans un dictionnaire: voir TP ici
Une fois la liste des élus importée dans une liste python:
Dans votre editeur python, explorer la liste table pour qu’elle affiche les informations sur la longueur, sur les premiers élus.
Si vous choisissez le bon caractère de séparation des données, vous devriez obtenir quelque chose d’approchant (la mise à jour est régulière, et les données peuvent différer):
> len(table)
490805
> table[1]
['32',
'Gers',
'',
'',
'32249',
'Mauvezin',
'MASAROTTI',
'Sylvie',
'F',
...
Si par contre, vous identifiez mal le caractère de séparation, vous allez obtenir quelque chose comme cela:
> len(table)
1
> table[1]
['32\tGers\t\t\t32249\tMauvezin\tMASAROTTI\tSylvie\tF']
ou peut-être:
> len(table)
1
> table[1]
['32;Gers;;;32249;Mauvezin;MASAROTTI;Sylvie;F']
Question 1: Quels sont les rangs auxquels se trouvent le numero de departement, ainsi que celui du sexe de l’élu ‘H’/‘F’?
Explorer pour définir l’ordre dans lequel sont classés les élus.
Question 2: Les élus du Gers, occupent-ils les premiers rangs? Et si oui, jusqu’à quel rang? Ecrire un script python qui recherche cette information.
Fonction recherche
Ecrire une fonction
recherche
qui recherche le premier élu dans un departement donné. La fonction recherche aura pour seul argument la variable textuelledpt
correspondant au departement recherché.
Cette fonction prend les éléments du tableau un par un, en commençant par le debut, et recherche la premiere occurence (le premier élu de ce departement).
Par exemple:
> recherche('06')
363891
Question 3: Donner le script de cette fonction.
Fonction pariteHF
Ecrire une fonction pariteHF qui compte le nombre d’élus Hommes et le nombre d’élues Femmes pour un departement donné. La fonction renvoie alors le couple de valeurs H/F.
Exemple:
> score_M,score_F = pariteHF('34')
> score_M,score_F
(3143, 2646)
Question 4: Donner le script de cette fonction.
Graphique
Représenter alors cette parité dans votre notebook sur un diagramme circulaire.
On s’aidera du lien suivant pour représenter des diagrammes avec Matplolib.

exemple de diagramme sur la proportion des élus H/F
Prolongement
Rechercher si, pour l’un des departements, le ratio ‘F’/‘M’ est supérieur à 1.
Faire un compte rendu avec les réponses, les scripts et graphiques. Utiliser un editeur de texte.
Suggestion de projet
Utiliser une API en python avec le module request
, et charger directement le fichier de données. Une API est une interface logicielle qui permet de se « connecter » à un service, ou un serveur.
Exemple issu de realpython.com
>>> import requests
>>> response = requests.get("https://randomuser.me/api/")
>>> response.text
'{"results":[{"gender":"female",
"name":{"title":"Ms","first":"Isobel","last":"Wang"}...'
Cette méthode permet de consulter la version la plus recente, mise à jour sur le serveur. On peut imaginer de nombreuses applications (météo, prix du carburant, …)