Traitement csv

Open Datas

Un exemple de données ouvertes

Plateforme ouverte des données publiques françaises

Plateforme ouverte des données publiques françaises

Le Répertoire National des Élus (RNE) a pour finalité le suivi des titulaires d’un mandat électoral. Il est renseigné et tenu à jour par les préfectures et hauts commissariats et par les services du ministère de l’intérieur, notamment sur la base des éléments fournis par les élus lors de la phase d’enregistrement des candidatures.

Données du RNE pour les conseillers municipaux - extrait en csv

Données du RNE pour les conseillers municipaux - extrait en csv

Les données du RNE sont structurées par mandat. Neuf fichiers sont publiés ici :

1. les conseillers municipaux ;

  1. les conseillers communautaires ;
  2. les conseillers départementaux ;
  3. les conseillers régionaux ;
  4. les membres des assemblées des collectivités à statut particulier ;
  5. les représentants au Parlement européen ;
  6. les sénateurs ;
  7. les députés ;
  8. 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

exemples de réutilisation des données ouvertes sur les elus municipaux

Ouvrir les données jugées d’intérêt public, c’est encourager leur réutilisation par tout un chacun. Cela permet d’encourager la transparence démocratique, de bénéficier de services au quotidien ou de prendre des décisions plus éclairées.

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 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 textuelle dpt 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

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, …)