Commit 0e900ed7 authored by Benjam's avatar Benjam
Browse files

correction mecanisme exclusion territoires DROM

parent f0bd69ae
from pathlib import Path
from typing import Tuple
import numpy as np
import pandas as pd
from pandas import DataFrame
......@@ -350,7 +351,11 @@ def _charger_sources_territoires(
regroupements_de_communes = chargeur_regroupements_communes.charger(chemin_dossier_regroupements_communes)
communes, epcis = traiter_communes_sans_epci(communes, epcis)
communes, arrondissements, mouvements_communes, epcis, departements, regions, codes_postaux = supprimer_DROMs(
communes, arrondissements, mouvements_communes, epcis, departements, regions, codes_postaux
)
chargeur_communes.traduire_code_insee_vers_id_crater(communes)
chargeur_arrondissements.traduire_code_insee_vers_id_crater(arrondissements)
chargeur_mouvements_communes.traduire_code_insee_vers_id_crater(mouvements_communes)
......@@ -364,16 +369,42 @@ def _charger_sources_territoires(
return {
'communes': communes,
'arrondissements': arrondissements,
'mouvements_communes': mouvements_communes,
'epcis': epcis,
'departements': departements,
'regions': regions,
'arrondissements': arrondissements,
'codes_postaux': codes_postaux,
'regroupements_de_communes': regroupements_de_communes
}
def traiter_communes_sans_epci(communes: DataFrame, epcis: DataFrame) -> (DataFrame, DataFrame):
def traiter_communes_sans_epci(communes: DataFrame, epcis: DataFrame) -> Tuple[DataFrame, DataFrame]:
communes.loc[communes.id_epci == "ZZZZZZZZZ", 'id_epci'] = np.nan
return (communes, epcis.query('id_epci != "ZZZZZZZZZ"'))
return communes, epcis.query('id_epci != "ZZZZZZZZZ"')
def supprimer_DROMs(
communes: DataFrame,
arrondissements: DataFrame,
mouvements_communes: DataFrame,
epcis: DataFrame,
departements: DataFrame,
regions: DataFrame,
codes_postaux: DataFrame
) -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame, DataFrame, DataFrame, DataFrame]:
communes = communes.loc[lambda df: ~df['id_region'].isin(["{:02}".format(num) for num in range(1, 10, 1)])]
arrondissements = arrondissements.loc[lambda df: ~df['id_arrondissement'].astype(str).str[0:2].isin(["97", "98"])]
mouvements_communes = mouvements_communes.loc[
lambda df: ~df['id_commune_final'].astype(str).str[0:2].isin(["97", "98"])
].loc[
lambda df: ~df['id_commune_initial'].astype(str).str[0:2].isin(["97", "98"])
]
liste_epcis_hors_DROM = set(communes[~communes['id_epci'].isnull()]['id_epci'])
epcis = epcis.loc[lambda df: df['id_epci'].isin(liste_epcis_hors_DROM)]
departements = departements.loc[lambda df: ~df['id_region'].isin(["{:02}".format(num) for num in range(1, 10, 1)])]
regions = regions.loc[lambda df: ~df['id_region'].isin(["{:02}".format(num) for num in range(1, 10, 1)])]
codes_postaux = codes_postaux.loc[lambda df: ~df['id_commune_ou_arrondissement'].astype(str).str[0:2].isin(["97", "98"])]
return communes, arrondissements, mouvements_communes, epcis, departements, regions, codes_postaux
......@@ -34,9 +34,7 @@ def charger(chemin_fichier: Path) -> DataFrame:
'nom_arrondissement',
'id_commune'
]
).loc[
lambda df: ~df['id_arrondissement'].astype(str).str[0:2].isin(["97", "98"])
]
)
def traduire_code_insee_vers_id_crater(arrondissements: DataFrame) -> DataFrame:
......
......@@ -32,9 +32,7 @@ def charger(chemin_fichier: Path) -> DataFrame:
'nom_commune_ou_arrondissement',
'code_postal'
]
).loc[
lambda df: ~df['id_commune_ou_arrondissement'].astype(str).str[0:2].isin(["97", "98"])
]
)
def traduire_code_insee_vers_id_crater(communes: DataFrame) -> DataFrame:
......
......@@ -42,9 +42,7 @@ def charger(chemin_fichier: Path) -> DataFrame:
'id_departement',
'id_region'
]
).loc[
lambda df: ~df['id_region'].isin(["{:02}".format(num) for num in range(1, 10, 1)])
]
)
return df
......
......@@ -37,9 +37,7 @@ def charger(chemin_fichier: Path) -> DataFrame:
'nom_departement',
'id_region'
]
).loc[
lambda df: ~df['id_region'].isin(["{:02}".format(num) for num in range(1, 10, 1)])
]
)
def traduire_code_insee_vers_id_crater(departements: DataFrame) -> DataFrame:
......
......@@ -44,9 +44,7 @@ def charger(chemin_fichier: Path) -> DataFrame:
"ZZ": "SANS_EPCI"
}
}
).loc[
lambda df: ~df['id_epci'].astype(str).str[2:4].isin(["97", "98"])
]
)
def traduire_code_insee_vers_id_crater(epcis: DataFrame) -> DataFrame:
......
......@@ -75,11 +75,7 @@ def charger_scissions(chemin_fichier: Path) -> DataFrame:
errors='raise'
).reindex(
columns=NOMS_COLONNES
).loc[
lambda df: ~df['id_commune_final'].astype(str).str[0:2].isin(["97", "98"])
].loc[
lambda df: ~df['id_commune_initial'].astype(str).str[0:2].isin(["97", "98"])
]
)
def traduire_code_insee_vers_id_crater(mouvements_communes: DataFrame) -> DataFrame:
......
......@@ -33,9 +33,7 @@ def charger(chemin_fichier: Path) -> DataFrame:
'id_region',
'nom_region'
]
).loc[
lambda df: ~df['id_region'].isin(["{:02}".format(num) for num in range(1, 10, 1)])
]
)
def traduire_code_insee_vers_id_crater(regions: DataFrame) -> DataFrame:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment