En surfant sur le Web, je suis tombé sur Anaconda, la distribution python axée sur les outils de data-science.
Après l’avoir installée sur Linux Mint, j’attends patiemment la sortie en avril de Ubuntu 24.04 « The Noble Numbat » afin de l’installer sur cette prochaine distribution Linux.
Anaconda embarque bon nombre d’outils dédiés à la science des données comme Spyder pour vous aider à écrire votre code, Jupyter (j’y reviendrai plus tard) ou bien encore Orange pour le data-mining, etc.
Pour accéder à ces multiples outils, Anaconda dispose d’un navigateur permettant de sélectionner ou d’installer selon le cas le logiciel souhaité.
Rentrons dans le vif du sujet, avec un exemple concret.
J’ai glané sur le web un fichier au format csv, en open data, des cessions immobilières de l’État, les données présentant une colonne « Région ».
Je souhaite donc extraire les données de la région Île-de-France (l’exemple est assez trivial me direz-vous, mais c’est un exemple).
Lançons Spyder et rédigeons le code python qui ressemble à ça dans Spyder :
Pour rendre plus lisible (et visible) ce code, je l’intègre dans Jupyter. Voyons ça ci-dessous sur un calepin électronique (ou notebook). Je lance donc qui… Jupyter pardi !
Ce qui ressemble à ça en exportant mon notebook Jupyter en html (via la console avec jupyter nbconvert –to html –template basic mon_calepin.ipynb cessionsIdF.html), puis en intégrant ce html dans mon blog WordPress.
Le code séquentiel commence par In[] et le résultat du code commence par Out[] (comprenez par Out le résultat du code python), avec mes explications de code :
Importation de la bibliothèque Pandas dans le programme avec un alias
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import pandas as pd
Je lis avec Pandas mon fichier csv en indiquant le délimiteur « ; »
df = pd.read_csv("cessions-immobilieres-de-letat-copie.csv",delimiter = ";")
J’affiche les premières lignes du fichier csv
df.head
<bound method NDFrame.head of ID Année_Cession Pays Département \ 0 120040045 2013 FRANCE ALPES DE HAUTE-PROVENCE 1 120140009 2013 FRANCE CALVADOS 2 120140039 2013 FRANCE CALVADOS 3 120250034 2013 FRANCE DOUBS 4 120260001 2013 FRANCE DRÔME ... ... ... ... ... 4974 170500015 2017 FRANCE MANCHE 4975 170700011 2017 FRANCE HAUTE-SAÔNE 4976 170880017 2017 FRANCE VOSGES 4977 179730021 2017 FRANCE GUYANE 4978 180950016 2017 FRANCE VAL-D'OISE Commune Nature \ 0 MANOSQUE ESPACE NATUREL 1 CAEN LOGEMENT 2 PORT EN BESSIN HUPPAIN ESPACE NATUREL 3 ETALANS ESPACE NATUREL 4 ALIXAN ESPACE NATUREL ... ... ... 4974 TOLLEVAST ESPACE NATUREL 4975 VESOUL ESPACE NATUREL 4976 GOLBEY LOGEMENT 4977 ST GEORGES ESPACE NATUREL 4978 TAVERNY ESPACE AMENAGE Ministère_occupant \ 0 Ministère de l'écologie, du développement dura... 1 Ministère de l'intérieur, de l'Outre-mer et de... 2 Ministère de l'écologie, du développement dura... 3 Ministère de l'écologie, du développement dura... 4 Ministère de l'écologie, du développement dura... ... ... 4974 Ministère de l'écologie, du développement dura... 4975 Ministère de l'écologie, du développement dura... 4976 Ministère de l'écologie, du développement dura... 4977 Biens non affectés 4978 Ministère de l'écologie, du développement dura... Service_occupant Type_Procédure_ayant_mené_à_la_vente \ 0 Autres Gré à gré 1 Gendarmerie Nationale Droit de priorité 2 DGITM/DAM Droit de priorité 3 DGITM/DIT Appel d'offres 4 DGITM/DIT Autres droits ... ... ... 4974 DGITM/DIT Appel d'offres 4975 DGITM/DIT Appel d'offres 4976 VNF Droit de priorité 4977 NaN Gré à gré 4978 Autres Gré à gré Nature_juridique_Acquereur ... adresse_complete \ 0 Entreprises société ... QUARTIER MANOSQUE 1 Etablissements publics locaux ... 12 RUE DANIEL HUET 2 Collectivités territoriales ... DESCENTE LA FALAISE 3 Collectivités territoriales ... NaN 4 Personnes physiques non commerçantes ... NaN ... ... ... ... 4974 Entreprises société ... NaN 4975 Entreprises société ... NaN 4976 Etablissements publics locaux ... 11 RUE DE L'ECLUSE 4977 Personnes physiques non commerçantes ... NaN 4978 Collectivités territoriales ... NaN geom com_code Nom Officiel Commune \ 0 43.835686, 5.776256 04112 Manosque 1 49.178683, -0.363049 14118 Caen 2 49.348837, -0.755599 14515 Port-en-Bessin-Huppain 3 47.150785, 6.267207 25222 Étalans 4 44.974156, 5.027222 26004 Alixan ... ... ... ... 4974 49.574496, -1.626592 50599 Tollevast 4975 47.621484, 6.154787 70550 Vesoul 4976 48.198227, 6.422135 88209 Golbey 4977 3.807958, -52.072288 97308 Saint-Georges 4978 49.0255, 2.226086 95607 Taverny Code Officiel EPCI Nom Officiel EPCI \ 0 200034700.0 CA Durance-Lubéron-Verdon Agglomération 1 200065597.0 CU Caen la Mer 2 241400555.0 CC de Bayeux Intercom 3 242504181.0 CC des Portes du Haut-Doubs 4 200068781.0 CA Valence Romans Agglo ... ... ... 4974 200067205.0 CA du Cotentin 4975 247000011.0 CA de Vesoul 4976 200068757.0 CA d'Épinal 4977 249730052.0 CC de l'Est Guyanais 4978 200058485.0 CA Val Parisis Code Officiel Département Nom Officiel Département Code Officiel Région \ 0 04 Alpes-de-Haute-Provence 93.0 1 14 Calvados 28.0 2 14 Calvados 28.0 3 25 Doubs 27.0 4 26 Drôme 84.0 ... ... ... ... 4974 50 Manche 28.0 4975 70 Haute-Saône 27.0 4976 88 Vosges 44.0 4977 973 Guyane 3.0 4978 95 Val-d'Oise 11.0 Nom Officiel Région 0 Provence-Alpes-Côte d'Azur 1 Normandie 2 Normandie 3 Bourgogne-Franche-Comté 4 Auvergne-Rhône-Alpes ... ... 4974 Normandie 4975 Bourgogne-Franche-Comté 4976 Grand Est 4977 Guyane 4978 Île-de-France [4979 rows x 30 columns]>
puis j’affiche les dernières lignes
df.tail
<bound method NDFrame.tail of ID Année_Cession Pays Département \ 0 120040045 2013 FRANCE ALPES DE HAUTE-PROVENCE 1 120140009 2013 FRANCE CALVADOS 2 120140039 2013 FRANCE CALVADOS 3 120250034 2013 FRANCE DOUBS 4 120260001 2013 FRANCE DRÔME ... ... ... ... ... 4974 170500015 2017 FRANCE MANCHE 4975 170700011 2017 FRANCE HAUTE-SAÔNE 4976 170880017 2017 FRANCE VOSGES 4977 179730021 2017 FRANCE GUYANE 4978 180950016 2017 FRANCE VAL-D'OISE Commune Nature \ 0 MANOSQUE ESPACE NATUREL 1 CAEN LOGEMENT 2 PORT EN BESSIN HUPPAIN ESPACE NATUREL 3 ETALANS ESPACE NATUREL 4 ALIXAN ESPACE NATUREL ... ... ... 4974 TOLLEVAST ESPACE NATUREL 4975 VESOUL ESPACE NATUREL 4976 GOLBEY LOGEMENT 4977 ST GEORGES ESPACE NATUREL 4978 TAVERNY ESPACE AMENAGE Ministère_occupant \ 0 Ministère de l'écologie, du développement dura... 1 Ministère de l'intérieur, de l'Outre-mer et de... 2 Ministère de l'écologie, du développement dura... 3 Ministère de l'écologie, du développement dura... 4 Ministère de l'écologie, du développement dura... ... ... 4974 Ministère de l'écologie, du développement dura... 4975 Ministère de l'écologie, du développement dura... 4976 Ministère de l'écologie, du développement dura... 4977 Biens non affectés 4978 Ministère de l'écologie, du développement dura... Service_occupant Type_Procédure_ayant_mené_à_la_vente \ 0 Autres Gré à gré 1 Gendarmerie Nationale Droit de priorité 2 DGITM/DAM Droit de priorité 3 DGITM/DIT Appel d'offres 4 DGITM/DIT Autres droits ... ... ... 4974 DGITM/DIT Appel d'offres 4975 DGITM/DIT Appel d'offres 4976 VNF Droit de priorité 4977 NaN Gré à gré 4978 Autres Gré à gré Nature_juridique_Acquereur ... adresse_complete \ 0 Entreprises société ... QUARTIER MANOSQUE 1 Etablissements publics locaux ... 12 RUE DANIEL HUET 2 Collectivités territoriales ... DESCENTE LA FALAISE 3 Collectivités territoriales ... NaN 4 Personnes physiques non commerçantes ... NaN ... ... ... ... 4974 Entreprises société ... NaN 4975 Entreprises société ... NaN 4976 Etablissements publics locaux ... 11 RUE DE L'ECLUSE 4977 Personnes physiques non commerçantes ... NaN 4978 Collectivités territoriales ... NaN geom com_code Nom Officiel Commune \ 0 43.835686, 5.776256 04112 Manosque 1 49.178683, -0.363049 14118 Caen 2 49.348837, -0.755599 14515 Port-en-Bessin-Huppain 3 47.150785, 6.267207 25222 Étalans 4 44.974156, 5.027222 26004 Alixan ... ... ... ... 4974 49.574496, -1.626592 50599 Tollevast 4975 47.621484, 6.154787 70550 Vesoul 4976 48.198227, 6.422135 88209 Golbey 4977 3.807958, -52.072288 97308 Saint-Georges 4978 49.0255, 2.226086 95607 Taverny Code Officiel EPCI Nom Officiel EPCI \ 0 200034700.0 CA Durance-Lubéron-Verdon Agglomération 1 200065597.0 CU Caen la Mer 2 241400555.0 CC de Bayeux Intercom 3 242504181.0 CC des Portes du Haut-Doubs 4 200068781.0 CA Valence Romans Agglo ... ... ... 4974 200067205.0 CA du Cotentin 4975 247000011.0 CA de Vesoul 4976 200068757.0 CA d'Épinal 4977 249730052.0 CC de l'Est Guyanais 4978 200058485.0 CA Val Parisis Code Officiel Département Nom Officiel Département Code Officiel Région \ 0 04 Alpes-de-Haute-Provence 93.0 1 14 Calvados 28.0 2 14 Calvados 28.0 3 25 Doubs 27.0 4 26 Drôme 84.0 ... ... ... ... 4974 50 Manche 28.0 4975 70 Haute-Saône 27.0 4976 88 Vosges 44.0 4977 973 Guyane 3.0 4978 95 Val-d'Oise 11.0 Nom Officiel Région 0 Provence-Alpes-Côte d'Azur 1 Normandie 2 Normandie 3 Bourgogne-Franche-Comté 4 Auvergne-Rhône-Alpes ... ... 4974 Normandie 4975 Bourgogne-Franche-Comté 4976 Grand Est 4977 Guyane 4978 Île-de-France [4979 rows x 30 columns]>
Je sélectionne les enregistrements contenant la région Île-de-France
DfIdF = df.loc[df["Nom Officiel Région"]=="Île-de-France",:]
J’affiche les premières lignes de mon extraction
DfIdF.head
<bound method NDFrame.head of ID Année_Cession Pays Département Commune \ 30 130770035 2013 FRANCE SEINE-ET-MARNE LIEUSAINT 54 120920026 2014 FRANCE HAUTS-DE-SEINE MONTROUGE 55 120920044 2014 FRANCE HAUTS-DE-SEINE COURBEVOIE 58 130950028 2014 FRANCE VAL-D'OISE ARGENTEUIL 70 140770032 2014 FRANCE SEINE-ET-MARNE CHANTELOUP EN BRIE ... ... ... ... ... ... 4921 160910028 2015 FRANCE ESSONNE BRETIGNY SUR ORGE 4928 120780020 2014 FRANCE YVELINES VERSAILLES 4946 140770018 2014 FRANCE SEINE-ET-MARNE MOISSY CRAMAYEL 4947 140770028 2014 FRANCE SEINE-ET-MARNE MONTEVRAIN 4978 180950016 2017 FRANCE VAL-D'OISE TAVERNY Nature Ministère_occupant \ 30 ESPACE NATUREL Ministère de l'écologie, du développement dura... 54 ESPACE AMENAGE Ministère du budget, des comptes publics et de... 55 RESEAUX ET VOIRIES Ministère de l'écologie, du développement dura... 58 ESPACE NATUREL Ministère de l'écologie, du développement dura... 70 ESPACE NATUREL Ministère de l'écologie, du développement dura... ... ... ... 4921 ESPACE AMENAGE Ministère de la défense 4928 LOGEMENT Ministère de la défense 4946 ESPACE NATUREL Ministère de l'écologie, du développement dura... 4947 ESPACE NATUREL Ministère de l'écologie, du développement dura... 4978 ESPACE AMENAGE Ministère de l'écologie, du développement dura... Service_occupant Type_Procédure_ayant_mené_à_la_vente \ 30 Autres Gré à gré 54 Autres Adjudication 55 Autres Autres droits 58 Autres Appel d'offres 70 Autres Gré à gré ... ... ... 4921 AUTRES Autres droits 4928 AUTRES Appel d'offres 4946 Autres Gré à gré 4947 Autres Gré à gré 4978 Autres Gré à gré Nature_juridique_Acquereur ... \ 30 Etablissements publics locaux ... 54 Personnes physiques non commerçantes ... 55 Collectivités territoriales ... 58 Personnes physiques non commerçantes ... 70 Collectivités territoriales ... ... ... ... 4921 Collectivités territoriales ... 4928 Entreprises société ... 4946 Etablissements publics locaux ... 4947 Collectivités territoriales ... 4978 Collectivités territoriales ... adresse_complete geom \ 30 NaN 48.631428, 2.548109 54 15/17 RUE ESTIENNE D'ORVES - PARKING VOITURE 48.814638, 2.324105 55 RUE BD DE LA MISSION MARCHAND/RUE BERTHELOT/AV... 48.898863, 2.240141 58 NaN 48.947394, 2.246363 70 NaN 48.854153, 2.738338 ... ... ... 4921 NaN 48.608679, 2.306854 4928 9 RUE DE L'INDÉPENDANCE AMÉRICAINE (32A30CA) 48.801424, 2.120454 4946 NaN 48.625288, 2.591583 4947 RUE BIEN DNID 48.85703, 2.757459 4978 NaN 49.0255, 2.226086 com_code Nom Officiel Commune Code Officiel EPCI \ 30 77251 Lieusaint 200059228.0 54 92049 Montrouge 200054781.0 55 92026 Courbevoie 200054781.0 58 95018 Argenteuil 200054781.0 70 77085 Chanteloup-en-Brie 247700594.0 ... ... ... ... 4921 91103 Brétigny-sur-Orge 200057859.0 4928 78646 Versailles 247800584.0 4946 77296 Moissy-Cramayel 200059228.0 4947 77307 Montévrain 247700594.0 4978 95607 Taverny 200058485.0 Nom Officiel EPCI Code Officiel Département \ 30 CA Grand Paris Sud Seine Essonne Sénart 77 54 Métropole du Grand Paris 92 55 Métropole du Grand Paris 92 58 Métropole du Grand Paris 95 70 CA Marne et Gondoire 77 ... ... ... 4921 CA Cœur d'Essonne Agglomération 91 4928 CA Versailles Grand Parc (C.A.V.G.P.) 78 4946 CA Grand Paris Sud Seine Essonne Sénart 77 4947 CA Marne et Gondoire 77 4978 CA Val Parisis 95 Nom Officiel Département Code Officiel Région Nom Officiel Région 30 Seine-et-Marne 11.0 Île-de-France 54 Hauts-de-Seine 11.0 Île-de-France 55 Hauts-de-Seine 11.0 Île-de-France 58 Val-d'Oise 11.0 Île-de-France 70 Seine-et-Marne 11.0 Île-de-France ... ... ... ... 4921 Essonne 11.0 Île-de-France 4928 Yvelines 11.0 Île-de-France 4946 Seine-et-Marne 11.0 Île-de-France 4947 Seine-et-Marne 11.0 Île-de-France 4978 Val-d'Oise 11.0 Île-de-France [673 rows x 30 columns]>
J’exporte mon extraction dans un fichier Excel
DfIdF.to_excel('output2.xlsx')
J’ai omis les parenthèses après head et tail car l’affichage n’est pas très lisible dans WordPress (mais bon c’est un exemple assez trivial me direz-vous…).
N’ayant présenté que sommairement les différents outils agrémentés d’un exemple simple, j’essaierai de présenter d’autres possibilités de ces outils dans de prochains articles.
A bientôt !