5. Pandas: Consum d’electricitat (2 punts)¶
Avís
Aquest exercici consta de dues preguntes independents. El pes de cada pregunta en la nota s’ajustarà en temps de correcció, però en cap cas serà inferior a 0.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. Podeu descarregar
aquest fitxer i analitzar les dades que conté:
>>> df = pd.read_csv('consum_elect.csv', dtype = {'Codi_Postal': str}) >>> df.head() 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
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 electro (fitxer
electro.py) hi implementeu les dues funcions següents:
- electro.electro1(df, sec, tr)¶
- Paràmetres:
- Retorna:
un
tuple,(data, codi postal, consum), amb la data (str), el codi postal (str) i el consum (int) corresponents al registre de consum mínim pel sector econòmic i tram horari donats, en elDataFramedonat.
Exemples:
>>> electro1(df, 'Residencial', '6-12') ('2022-01-01', '08008', 10246) >>> electro1(df, 'Residencial', '18-24') ('2022-03-27', '08008', 13164) >>> electro1(df, 'Indústria', '12-18') ('2022-01-01', '08011', 917)
Disposeu de jocs de proves addicionals al fitxer tests-electro1.txt.
- electro.electro2(df, mes)¶
- Paràmetres:
- Retorna:
una
Seriesindexada per sector econòmic i on el valor és el percentatge de consum d’aquest sector respecte del total, considerant només els consums realitzats en el mes donat mes. LaSeriesha d’estar en ordre descendent de percentatge.
Exemples:
>>> se1 = electro2(df, 2) >>> type(se1) <class 'pandas.core.series.Series'> >>> se1 = se1.apply(lambda x: round(x, 2)) >>> se1 Sector_Economic Serveis 55.90 Residencial 38.53 Indústria 5.47 No especificat 0.10 Name: Valor, dtype: float64
Recordeu que la classe pandas.Series té mètodes per tractar dades de tipus str (vegeu per exemple metodes str) que us poden ser d’utilitat per filtrar les dades corresponents al mes donat.
Recordeu que no podeu llegir fitxer que conté el dataframe dins del vostre codi.
Disposeu de jocs de proves addicionals al fitxer tests-electro2.txt.