Coverage for src/papierstat/datasets/enedis.py: 92%

13 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-30 06:49 +0200

1# -*- coding: utf-8 -*- 

2""" 

3@file 

4@brief Jeux de données reliés à :epkg:`Enedis`. 

5""" 

6import pandas 

7 

8 

9def load_enedis_dataset(dest='.', fLOG=None): 

10 """ 

11 Retourne des données extraites du site :epkg:`Enedis` : 

12 `Production électrique annuelle par filière à la maille commune 

13 <https://data.enedis.fr/explore/dataset/production-electrique-par-filiere-a-la-maille-commune/export/>`_. 

14 Le jeu proposé est un extrait pour les années 2015-2016. 

15 Le téléchargement utilise le module :epkg:`pyensae`. 

16 Notebooks associés à ce jeu de données : 

17 

18 .. runpython:: 

19 :rst: 

20 

21 from papierstat.datasets.documentation import list_notebooks_rst_links 

22 links = list_notebooks_rst_links('visualisation', 'enedis') 

23 links = [' * %s' % s for s in links] 

24 print('\\n'.join(links)) 

25 

26 @param dest répertoire de destination 

27 @param fLOG fonction de log 

28 @return :epkg:`pandas:DataFrame` 

29 """ 

30 from pyensae.datasource import download_data 

31 name = "production-electrique-par-filiere-a-la-maille-commune.extrait.2015-2016.csv.zip" 

32 if fLOG: 

33 res = download_data(name, whereTo=dest, fLOG=fLOG) 

34 else: 

35 res = download_data(name, whereTo=dest) 

36 if len(res) != 1: 

37 raise ValueError( # pragma: no cover 

38 f"Unzipping '{name}' failed.") 

39 df = pandas.read_csv(res[0], sep=';', encoding='utf-8') 

40 df['long'] = df['Geo Point 2D'].apply( 

41 lambda x: float(x.split(',')[1].strip())) 

42 df['lat'] = df['Geo Point 2D'].apply( 

43 lambda x: float(x.split(',')[0].strip())) 

44 return df