Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
lga
crater-data
Commits
0e900ed7
Commit
0e900ed7
authored
Nov 10, 2021
by
Benjam
Browse files
correction mecanisme exclusion territoires DROM
parent
f0bd69ae
Changes
10
Hide whitespace changes
Inline
Side-by-side
crater/territoires/calculateur_referentiel_territoires.py
View file @
0e900ed7
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
crater/territoires/chargeur_arrondissements.py
View file @
0e900ed7
...
...
@@ -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
:
...
...
crater/territoires/chargeur_codes_postaux.py
View file @
0e900ed7
...
...
@@ -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
:
...
...
crater/territoires/chargeur_communes.py
View file @
0e900ed7
...
...
@@ -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
...
...
crater/territoires/chargeur_departements.py
View file @
0e900ed7
...
...
@@ -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
:
...
...
crater/territoires/chargeur_epcis.py
View file @
0e900ed7
...
...
@@ -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
:
...
...
crater/territoires/chargeur_mouvements_communes.py
View file @
0e900ed7
...
...
@@ -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
:
...
...
crater/territoires/chargeur_regions.py
View file @
0e900ed7
...
...
@@ -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
:
...
...
tests/data/input/crater/sources_territoires/referentiel/communes_et_arrondissements.xlsx
View file @
0e900ed7
No preview for this file type
tests/data/input/crater/sources_territoires/referentiel/epcis.xlsx
View file @
0e900ed7
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment