Skip to main content
Sign in
Snippets Groups Projects

Logements modif

1 file
+ 15
17
Compare changes
  • Side-by-side
  • Inline
from dataclasses import dataclass
from datacirco import utilitaires
import pandas as pd
@dataclass()
@@ -318,17 +317,17 @@ class GetLogement:
liste_apres_2021 = self.data.logements.dpe_post_2021
resultat = []
index_liste1 = {d['classe']: d for d in liste_apres_2021}
index_liste1 = {d["classe"]: d for d in liste_apres_2021}
for classe_avant_2021 in liste_avant_2021:
id_valeur = classe_avant_2021['classe']
id_valeur = classe_avant_2021["classe"]
if id_valeur in index_liste1:
# Si la clé existe dans les deux listes, fusionner les dictionnaires
valeur_2021_avant = int(classe_avant_2021.get('2021'))
valeur_2021_apres = int(index_liste1[id_valeur].get('2021'))
valeur_2021_avant = int(classe_avant_2021.get("2021"))
valeur_2021_apres = int(index_liste1[id_valeur].get("2021"))
dictionnaire_fusionne = {**index_liste1[id_valeur], **classe_avant_2021}
dictionnaire_fusionne['2021'] = valeur_2021_avant + valeur_2021_apres
dictionnaire_fusionne['annee_2021_avant'] = valeur_2021_avant
dictionnaire_fusionne['annee_2021_apres'] = valeur_2021_apres
dictionnaire_fusionne["2021"] = valeur_2021_avant + valeur_2021_apres
dictionnaire_fusionne["annee_2021_avant"] = valeur_2021_avant
dictionnaire_fusionne["annee_2021_apres"] = valeur_2021_apres
resultat.append(dictionnaire_fusionne)
else:
# Si la clé n'existe que dans la deuxième liste, ajouter le dictionnaire tel quel
@@ -351,7 +350,7 @@ class GetLogement:
ON st_intersects(c.wkb_geometry, d.geom)
WHERE c.ref = '{self.circo}'
AND CAST(d.date_etablissement_dpe as VARCHAR) NOT LIKE '2024%'
AND d.etiquette_ges d.classe_estimation_ges IN ('A', 'B', 'C', 'D', 'E', 'F', 'G')
AND d.etiquette_ges IN ('A', 'B', 'C', 'D', 'E', 'F', 'G')
GROUP BY 1
) as compte
ORDER BY 1;"""
@@ -455,7 +454,6 @@ class GetLogement:
for row in self.db.fetchall()
]
if len(self.data.logements.dpe) > 4 and len(self.data.logements.dpe_dep) > 4:
sql1 = f"""SELECT classe_ges, coalesce(a.annee_2013, 0) as annee_2013, coalesce(a.annee_2014, 0) as annee_2014, coalesce(a.annee_2015, 0) as annee_2015,
coalesce(a.annee_2016, 0) as annee_2016, coalesce(a.annee_2017, 0) as annee_2017, coalesce(a.annee_2018, 0) as annee_2018,
@@ -503,17 +501,17 @@ class GetLogement:
]
resultat_ges = []
index_liste1 = {d['classe']: d for d in liste_ges_apres_2021}
index_liste1 = {d["classe"]: d for d in liste_ges_apres_2021}
for classe_avant_2021 in liste_ges_avant_2021:
id_valeur = classe_avant_2021['classe']
id_valeur = classe_avant_2021["classe"]
if id_valeur in index_liste1:
# Si la clé existe dans les deux listes, fusionner les dictionnaires
valeur_2021_avant = int(classe_avant_2021.get('2021'))
valeur_2021_apres = int(index_liste1[id_valeur].get('2021'))
valeur_2021_avant = int(classe_avant_2021.get("2021"))
valeur_2021_apres = int(index_liste1[id_valeur].get("2021"))
dictionnaire_fusionne = {**index_liste1[id_valeur], **classe_avant_2021}
dictionnaire_fusionne['2021'] = valeur_2021_avant + valeur_2021_apres
dictionnaire_fusionne['annee_2021_avant'] = valeur_2021_avant
dictionnaire_fusionne['annee_2021_apres'] = valeur_2021_apres
dictionnaire_fusionne["2021"] = valeur_2021_avant + valeur_2021_apres
dictionnaire_fusionne["annee_2021_avant"] = valeur_2021_avant
dictionnaire_fusionne["annee_2021_apres"] = valeur_2021_apres
resultat_ges.append(dictionnaire_fusionne)
else:
# Si la clé n'existe que dans la deuxième liste, ajouter le dictionnaire tel quel
Loading