3. Pandas: Consum d’electricitat (3.5 punts)

Del web de dades obertes de l’ajuntament de Barcelona hem descarregat un fitxer amb dades de consum d’electricitat durant alguns mesos de 2022, que hem simplificat: consum_elect.csv. Descarregueu aquest fitxer i analitzeu-ne les dades. A partir d’aquest fitxer, hem llegit un DataFrame del que es mostren algunes dades:

>>> import pandas as pd
>>> df = pd.read_csv('consum_elect.csv', dtype = {'Codi_Postal': str})
>>> df[:5]
         Data Codi_Postal Sector_Economic Tram_Horari  Valor
0  2022-01-01       08001       Indústria         0-6    817
1  2022-01-01       08001       Indústria        6-12    942
2  2022-01-01       08001       Indústria       12-18   1145
3  2022-01-01       08001       Indústria       18-24   1184
4  2022-01-01       08001     Residencial         0-6  24464

Observem que totes les columnes són de tipus str excepte la columna 'Valor' que representa el consum en megawatt-hores i és de tipus int.

Es demana que al mòdul electra (fitxer electra.py) hi implementeu les dues funcions següents:

electra.electra1(df)
Paràmetres:

df – un DataFrame com el de l’exemple que conté dades de consums d’electricitat.

Retorna:

un DataFrame de les mateixes característiques que el donat i només amb les files amb consums estrictament superiors a un 95% del consum màxim. Aquest DataFrame ha d’estar en ordre descendent de consum.

Exemples:

>>> df1 = electra1(df)
>>> type (df1)
<class 'pandas.core.frame.DataFrame'>
>>> len(df1)
12
>>> df1[:5]
            Data Codi_Postal Sector_Economic Tram_Horari   Valor
6310  2022-01-24       08018         Serveis       12-18  158433
4990  2022-01-19       08018         Serveis       12-18  156838
4726  2022-01-18       08018         Serveis       12-18  156133
6574  2022-01-25       08018         Serveis       12-18  155623
4462  2022-01-17       08018         Serveis       12-18  154038

Disposeu de jocs de proves addicionals al fitxer test-electra1.txt.

electra.electra2(df, sec)
Paràmetres:
  • df – un DataFrame com el de l’exemple que conté dades de consums d’electricitat.

  • sec – el nom d’un sector econòmic (str).

Retorna:

un tuple, (tram horari, consum total), amb les dades corresponents al tram horari, d’entre tots els del sector econòmic donat i en el DataFrame donat, tal que el consum total és màxim. Per consum total s’entén la suma dels consums de tots els dies i codis postals. En aquest tuple, el tram horari és de tipus str i el consum total de tipus int.

Exemples:

>>> electra2(df, 'Residencial')
('18-24', 93480291)
>>> electra2(df, 'Indústria')
('12-18', 11816140)

Disposeu de jocs de proves addicionals al fitxer test-electra2.txt.