Deal flow espaces verts 2018 - 2019#

Links: notebook, html, python, slides, GitHub

Ce jeu de données est proposé pour la réalisation d’un projet de module python pour partager une fonction de graphe. Un exemple de ce projet est proposé : td2a_plotting.

from jyquickhelper import add_notebook_menu
add_notebook_menu()
%matplotlib inline

Récupération des données#

from ensae_teaching_cs.data import deal_flow_espace_vert_2018_2019
filenames = deal_flow_espace_vert_2018_2019()
filenames
['./DEAL Flow automatisation 2019.xlsx', './Jeu de données deal flow 2018.csv']
import pandas
df19 = pandas.read_excel(filenames[0], engine='openpyxl')
df19.head()
DOMAINE SOUS_DOMAINE SOUS_DOMAINE_NIV2 SOUS_DOMAINE_NIV3 DOSSIER_CODE DOSSIER_OBJET TIERS NOM COMMUNE COMMUNE_X COMMUNE_Y DOSSIER_DATE_NOTIFICATION DOSSIER_DUREE iOpérationCout iMontant total
0 D2-Economie Circulaire 2DE-Déchets 2DE.01-Prévention 2DE.01.01-Réemploi/réparation 19OCC0099 Achat et pose de mobilier de seconde vie pour ... SA HLM CHALETS Toulouse 1.431672 43.596382 2019-05-28 18.0 197001.00 15864.0
1 D2-Economie Circulaire 2DE-Déchets 2DE.02-Valorisation organique 2DE.02.01-Méthanisation 18BRC0299 BIOGAZ 2018 - Installation d'une unité de méth... GAEC LA MOTTE COATHUAL Plouguernével -3.247116 48.234072 2019-03-06 48.0 1283771.16 160103.0
2 D2-Economie Circulaire 2DE-Déchets 2DE.02-Valorisation organique 2DE.02.01-Méthanisation 18BRC0304 BIOGAZ 2018 - Installation d'une unité de méth... SAS METHA-GOURHAND Martigné-Ferchaud -1.328084 47.828196 2019-03-15 48.0 2073288.45 160417.0
3 D1-Energie, changement climatique, qualité de ... 1ER-Energies renouvelables et de récupération ... 1ER.06-Solaire Th. 1ER.06.03-Solaire tertiaire 19COC0041 AAP STCo - Alimentation ECS solaire d'une vill... MINNA Zonza 9.266098 41.721407 2019-05-17 18.0 6000.00 3255.0
4 D1-Energie, changement climatique, qualité de ... 1ER-Energies renouvelables et de récupération ... 1ER.05-Réseaux de chaleur distribution 1ER.05.02-Extension de Réseaux de chaleur 18RAC0252 AAP AURESEAU 2018 : Extension/densification du... COMPAGNIE DE CHAUFFAGE INTERCOMMUNALE DE L'AGG... Grenoble 5.721333 45.182120 NaT 65.0 98123000.00 8674236.0

L’encoding du fichier csv n’est pas évident à deviner. On utilise le module chardet pour cela.

import chardet
with open(filenames[1], 'rb') as f:
    c = f.read()
chardet.detect(c)
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}
df18 = pandas.read_csv(filenames[1], encoding="Windows-1252", sep=";", decimal=',')
df18.head()
DOMAINE SOUS_DOMAINE SOUS_DOMAINE_NIV2 SOUS_DOMAINE_NIV3 DOSSIER_CODE DOSSIER_OBJET TIERS_NOM COMMUNE COMMUNE_X COMMUNE_Y DOSSIER_DATE_NOTIFICATION DOSSIER_DUREE iNbDossiers iOpérationCout iMontantTotal
0 D1-Energie, changement climatique, qualité de ... 1BA-Bâtiment 1BA.01-Performance énergétique bâtiment - 17GAC0007 Construction du groupe scolaire de Calvaire à ... COMMUNE DE BAIE-MAHAULT Guadeloupe -61.539650 16.198191 23/05/2018 36 1 719730.0 20586.0
1 D1-Energie, changement climatique, qualité de ... 1BA-Bâtiment 1BA.01-Performance énergétique bâtiment - 17MAC0054 Lauréat AAP Rénovation Bâtiment - Rénovation é... SA DE LA RAFFINERIE DES ANTILLES Fort-de-France -61.069188 14.641109 07/06/2018 26 1 488813.0 102154.0
2 D1-Energie, changement climatique, qualité de ... 1BA-Bâtiment 1BA.01-Performance énergétique bâtiment - 17REC0125 Projet PREBAT UFR santé UNIVERSITE DE LA REUNION La Réunion 55.532483 -21.133114 03/05/2018 36 1 14415686.0 194489.0
3 D1-Energie, changement climatique, qualité de ... 1BA-Bâtiment 1BA.01-Performance énergétique bâtiment - 18GAC0013 AAP BATEX 2017 - Réalisation de l'Hôtel Le Ré... COMPAGNIE D'EXPLOITATION HOTELIERE DES ABYMES ... Guadeloupe -61.539650 16.198191 26/11/2018 36 1 7429000.0 182100.0
4 D1-Energie, changement climatique, qualité de ... 1BA-Bâtiment 1BA.01-Performance énergétique bâtiment - 18GAC0015 AAP BATEX 2017 - Construction du bâtiment CONF... ELLAGUA Guadeloupe -61.539650 16.198191 27/07/2018 44 1 1418327.0 64511.0

Comparons les colonnes.

df18.columns
Index(['DOMAINE', 'SOUS_DOMAINE', 'SOUS_DOMAINE_NIV2', 'SOUS_DOMAINE_NIV3',
       'DOSSIER_CODE', 'DOSSIER_OBJET', 'TIERS_NOM', 'COMMUNE', 'COMMUNE_X',
       'COMMUNE_Y', 'DOSSIER_DATE_NOTIFICATION', 'DOSSIER_DUREE',
       'iNbDossiers', 'iOpérationCout', 'iMontantTotal'],
      dtype='object')
df19.columns
Index(['DOMAINE', 'SOUS_DOMAINE', 'SOUS_DOMAINE_NIV2', 'SOUS_DOMAINE_NIV3',
       'DOSSIER_CODE', 'DOSSIER_OBJET', 'TIERS NOM', 'COMMUNE', 'COMMUNE_X',
       'COMMUNE_Y', 'DOSSIER_DATE_NOTIFICATION', 'DOSSIER_DUREE',
       'iOpérationCout', 'iMontant total'],
      dtype='object')

Vues dynamiques#

On regarde un peu les données.

columns = list(sorted(set(list(df18.columns) +  list(df19.columns)))) + ['montant']
from ipywidgets import interact
@interact(annee=[2018, 2019], column=columns, x=(0, 10000000, 100000))
def show_rows(annee=2018, column='montant', x=100000):
    if annee == 2018:
        if column == 'montant':
            column = 'iMontantTotal'
        return df18[df18[column] >= x].sort_values(column).T
    else:
        if column == 'montant':
            column = 'iMontant total'
        return df19[df19[column] >= x].sort_values(column).T
747 569 20 126 1 830 240 561 287 192 ... 189 134 209 947 217 211 273 212 222 111
DOMAINE D2-Economie Circulaire D2-Economie Circulaire D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D2-Economie Circulaire D1-Energie, changement climatique, qualité de ... D2-Economie Circulaire D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D2-Economie Circulaire D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ... D1-Energie, changement climatique, qualité de ...
SOUS_DOMAINE 2DE-Déchets 2DE-Déchets 1EE-Efficacité énergétique dans la production ... 1ER-Energies renouvelables et de récupération ... 1BA-Bâtiment 2DE-Déchets 1ER-Energies renouvelables et de récupération ... 2DE-Déchets 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... ... 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... 2DE-Déchets 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ... 1ER-Energies renouvelables et de récupération ...
SOUS_DOMAINE_NIV2 2DE.02-Valorisation organique 2DE.01-Prévention 1EE.02-Process 1ER.02-Biomasse approvisionnement 1BA.01-Performance énergétique bâtiment 2DE.02-Valorisation organique 1ER.05-Réseaux de chaleur distribution 2DE.01-Prévention 1ER.05-Réseaux de chaleur distribution 1ER.03-Géothermie ... 1ER.03-Géothermie 1ER.03-Géothermie 1ER.05-Réseaux de chaleur distribution 2DE.03-Recyclage et valorisation énergétique 1ER.05-Réseaux de chaleur distribution 1ER.05-Réseaux de chaleur distribution 1ER.05-Réseaux de chaleur distribution 1ER.05-Réseaux de chaleur distribution 1ER.05-Réseaux de chaleur distribution 1ER.01-Biomasse
SOUS_DOMAINE_NIV3 2DE.02.01-Méthanisation 2DE.01.01-Réemploi/réparation - - - 2DE.02.04-Desemballage/déconditionnement 1ER.05.01-Création de Réseaux de chaleur 2DE.01.01-Réemploi/réparation 1ER.05.02-Extension de Réseaux de chaleur 1ER.03.06-Opération sur aquifère superficiel <... ... 1ER.03.05-Opération sur aquifère profond >200m... 1ER.03.02-PAC sur eaux usées 1ER.05.01-Création de Réseaux de chaleur 2DE.03.08-Equipements valo énergétique hors mé... 1ER.05.01-Création de Réseaux de chaleur 1ER.05.01-Création de Réseaux de chaleur 1ER.05.02-Extension de Réseaux de chaleur 1ER.05.01-Création de Réseaux de chaleur 1ER.05.01-Création de Réseaux de chaleur 1ER.01.02-Chaufferie biomasse industrie
DOSSIER_CODE 17GEC0327 17NOC0147 17RAC0171 18NOC0009 17MAC0054 18OCC0042 18GEC0049 17GEC0583 18GEC0063 17CLC0150 ... 1520C0553 17PAC0007 1622C0004 17NAC0421 17CLC0167 1633C0081 17HFC0107 1634C0195 17HFC0199 1803C0022
DOSSIER_OBJET Installation d'une unité de méthanisation avec... Création d'un tiers lieu du réemploi des déche... Appel à projets 2017 "Transition énergétique &... AMI DYNAMIC BOIS 2015 : Acquisition d'un débus... Lauréat AAP Rénovation Bâtiment - Rénovation é... création d'une unité de biodéconditionnement à... Création d' un réseau de chaleur à partir de l... Création d'une recyclerie sur le territoire de... Extension du réseau de chaleur VOLTINOV pour r... réalisation d'une installation géothermique su... ... Réaliser une centrale de géothermie profonde d... NTE - Création d'une boucle d'eau tempérée sur... AAP 2017 - Réseau de chaleur bois-énergie à Au... AAP "Produire de la chaleur à partir de Combus... Création d'une chaufferie biomasse et d'un rés... Création d'un réseau de chaleur alimenté par l... Extension et adaptation du réseau de chaleur u... Création d'une chaufferie bois-énergie produis... Développement des réseaux de chaleur et produc... Construction d'une installation biomasse sur l...
TIERS_NOM GROUPEMENT AGRICOLE D EXPLOITATION EN COMMUN D... LE HANGAR 0 LE HANGAR ZERO ALAIN DULAC VENDANGER LAURENT SA DE LA RAFFINERIE DES ANTILLES SOCIETE PATRICK TUBERT SIVOM DE L'AGGLOMERATION MULHOUSIENNE COMMUNAUTE DE COMMUNES DU PAYS DE COLOMBEY ET ... COMPTOIR AGRICOLE D ACHAT ET DE VENTE CC DU CHATILLONNAIS EN BERRY ... ELECTRICITE DE STRASBOURG / ES ILLKIRCH GEOTHE... DALKIA AURILLAC CHALEUR BOIS SUEZ RV FRANCE ENGIE ENERGIE SERVICES / TOURS METROPOLE-ENERG... GREEN ENERGIE BRIVE SA ETUD REALIS GESTION RESEAU CHALEUR ND DALKIA AMIENS ENERGIES TARANIS DU ROUVRAY
COMMUNE Donnelay Havre (Le) Cublize Normandie Fort-de-France Elne Sausheim NaN Marlenheim Châtillon-sur-Indre ... Illkirch-Graffenstaden Nice Aurillac Saint-Michel Tours Brive-la-Gaillarde Lille Sarreguemines Amiens Saint-Étienne-du-Rouvray
COMMUNE_X 6.688837 0.140074 4.387367 0.110814 -61.069188 2.971194 7.40066 NaN 7.50589 1.175097 ... 7.731296 7.238269 2.441624 0.110389 0.696524 1.519368 3.047833 7.069432 2.290075 1.089769
COMMUNE_Y 48.750185 49.498472 46.024511 49.120255 14.641109 42.60086 47.782498 NaN 48.619055 46.991707 ... 48.52005 43.711992 44.924523 45.639858 47.398637 45.143583 50.631718 49.108814 49.900953 49.381494
DOSSIER_DATE_NOTIFICATION 05/04/2018 26/11/2018 10/07/2018 26/04/2018 07/06/2018 13/03/2018 23/10/2018 16/07/2018 15/11/2018 21/09/2018 ... 21/06/2018 12/11/2018 13/04/2018 29/11/2018 26/11/2018 20/04/2018 20/11/2018 04/09/2018 18/06/2018 27/07/2018
DOSSIER_DUREE 40 18 30 24 26 18 36 18 18 36 ... 36 66 48 45 96 42 72 57 72 96
iNbDossiers 1 1 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1 1 1
iOpérationCout 1064320.0 795000.0 308181.0 253000.0 488813.0 359117.0 189502.0 370000.0 665770.0 398173.0 ... 31609480.0 24943544.0 9165541.0 31200000.0 11319500.0 18316449.0 27745000.0 15491429.0 32688506.0 43535173.0
iMontantTotal 100000.0 100000.0 100000.0 101200.0 102154.0 102370.0 102758.0 103740.0 103770.0 104200.0 ... 4900000.0 4944008.0 5499325.0 5521000.0 6420500.0 6585500.0 7188000.0 7189010.0 14661241.0 14990000.0

15 rows × 514 columns

interactive(children=(Dropdown(description='annee', options=(2018, 2019), value=2018), Dropdown(description='c…

Une carte#

On regarde les projets sur la métropole en 2018.

lim_metropole = [-5, 10, 41, 52]

df18_metro = df18[((df18.COMMUNE_X >= lim_metropole[0]) & (df19.COMMUNE_X <= lim_metropole[1]) &
                   (df18.COMMUNE_Y >= lim_metropole[2]) & (df19.COMMUNE_Y <= lim_metropole[3]))]
df18.shape, df18_metro.shape
((1036, 15), (271, 15))
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
ax.set_extent(lim_metropole)
ax.add_feature(cfeature.OCEAN.with_scale('50m'))
ax.add_feature(cfeature.COASTLINE.with_scale('50m'))
ax.add_feature(cfeature.RIVERS.with_scale('50m'))
ax.add_feature(cfeature.BORDERS.with_scale('50m'), linestyle=':')
ax.scatter(df18_metro.COMMUNE_X, df18_metro.COMMUNE_Y,
           s=df18_metro.iMontantTotal ** 0.5 / 20, alpha=0.5)
ax.set_title('France 2018\ninvestissements verts');
# debug
../_images/deal_flow_espace_vert_19_0.png