Coverage for aftercovid/data/data_insee.py: 97%
39 statements
« prev ^ index » next coverage.py v7.1.0, created at 2024-04-24 03:09 +0200
« prev ^ index » next coverage.py v7.1.0, created at 2024-04-24 03:09 +0200
1# coding: utf-8
2"""
3Loads data from :epkg:`INSEE`.
4"""
5import os
6from pandas import to_datetime
7from .pandas_cache import read_csv_cache, geo_read_csv_cache
10def data_france_departments(cache='dep_france', metropole=False):
11 """
12 Retrieves data from
13 `Contours géographiques des départements
14 <https://www.data.gouv.fr/en/datasets/
15 contours-geographiques-des-departements/>`_.
17 :param metropole: only for the metropole
18 :param cache: cache name
19 :return: geodataframe
20 """
21 url = ("https://www.data.gouv.fr/en/datasets/r/"
22 "ed02b655-4307-4db4-b1ca-7939145dc20f")
23 backup = os.path.join(os.path.dirname(__file__),
24 "data_france_dep.geojson")
25 df = geo_read_csv_cache(cache, url, backup=backup)
26 if 'id' in df.columns:
27 df = df.drop('id', axis=1)
28 if metropole:
29 codes = [_ for _ in set(df.code_depart) if len(_) < 3]
30 return df[df.code_depart.isin(codes)]
31 return df
34def data_covid_france_departments_hospitals(
35 cache='covid_france_hosp', metropole=False):
36 """
37 Retrieves data from
38 `Données hospitalières relatives à l'épidémie de COVID-19
39 <https://www.data.gouv.fr/fr/datasets/
40 donnees-hospitalieres-relatives-a-lepidemie-de-covid-19/>`_.
42 :param cache: cache name
43 :param metropole: only for the metropole
44 :return: dataframe
45 """
46 url = ("https://www.data.gouv.fr/fr/datasets/r/"
47 "63352e38-d353-4b54-bfd1-f1b3ee1cabd7")
48 df = read_csv_cache(cache, url, sep=';')
49 df['jour'] = to_datetime(df['jour'])
50 if metropole:
51 codes = [_ for _ in set(df.dep) if len(_) < 3]
52 return df[df.dep.isin(codes)]
53 return df
56def data_covid_france_departments_tests(
57 cache='covid_france_test',
58 metropole=False):
59 """
60 Retrieves data from
61 `Données de laboratoires pour le dépistage
62 (A COMPTER DU 18/05/2022) - SI-DEP
63 <https://www.data.gouv.fr/fr/datasets/
64 donnees-de-laboratoires-pour-le-depistage-a-compter-du-18-05-2022-si-dep/>`_.
66 :param cache: cache name
67 :param metropole: only for the metropole
68 :return: geodatafrale
69 """
70 def trylen(v):
71 try:
72 return len(v)
73 except TypeError as e: # pragma: no cover
74 raise TypeError(f"Issue with '{v}'") from e
75 url = ("https://www.data.gouv.fr/fr/datasets/r/"
76 "674bddab-6d61-4e59-b0bd-0be535490db0")
77 df = read_csv_cache(cache, url, sep=";", decimal=",")
78 df['jour'] = to_datetime(df['jour'])
79 df['dep'] = df.dep.astype(str)
81 def plus0(s):
82 if len(s) < 2:
83 return "0" * (2 - len(s)) + s
84 return s
86 df['dep'] = df['dep'].apply(plus0)
88 if metropole:
89 codes = [_ for _ in set(df.dep) if trylen(_) < 3]
90 return df[df.dep.isin(codes)]
91 return df