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

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 

8 

9 

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/>`_. 

16 

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 

32 

33 

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/>`_. 

41 

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 

54 

55 

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/>`_. 

65 

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) 

80 

81 def plus0(s): 

82 if len(s) < 2: 

83 return "0" * (2 - len(s)) + s 

84 return s 

85 

86 df['dep'] = df['dep'].apply(plus0) 

87 

88 if metropole: 

89 codes = [_ for _ in set(df.dep) if trylen(_) < 3] 

90 return df[df.dep.isin(codes)] 

91 return df