3. Observació d’esquirols¶
El fitxer esquirols.csv conté les dades de les observacions d’esquirols als parcs de Nova York durant l’any 2024. Si llegim aquest fitxer mitjançant la següent comanda de pandas, obtenim un pandas.DataFrame com aquest:
>>> import pandas as pd
>>> df = pd.read_csv("esquirols.csv")
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 433 entries, 0 to 432
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Area 433 non-null object
1 Area_ID 433 non-null object
2 Park_Name 433 non-null object
3 Park_ID 433 non-null int64
4 Squirrel_ID 433 non-null object
5 Color 432 non-null object
6 Highlights 339 non-null object
7 Location 399 non-null object
8 Activities 378 non-null object
9 Day 425 non-null float64
10 Month 426 non-null float64
dtypes: float64(2), int64(1), object(8)
memory usage: 37.3+ KB
Descarregueu-vos el fitxer esquirols.csv, proveu de llegir-lo en l’intèrpret de Python tal com s’indica en l’exemple de més amunt i examineu les columnes i valors que conté. Fixeu-vos algunes columnes contenen valors nuls (missing data).
Les funcions que es demanen a continuació han de treballar amb un DataFrame qualsevol amb la mateixa estructura (índex numèric i columnes), però no necessàriament el mateix de l’exemple, poden correspondre a les observacions en altres parcs o en un altre any. Deseu les dues funcions al mateix mòdul esquirols (fitxer esquirols.py).
3.1. Funció activitat (2 punts)¶
- esquirols.activitat(df, p, a)¶
Per exemple,
>>> activitat(df, 'McCarren Park', 'Running')
10
>>> activitat(df, 'Columbus Park', 'Climbing')
2
>>> activitat(df, 'Fort Tryon Park', 'Eating')
4
Observeu que a la columna “Activities” hi pot haver la descripció de més d’una activitat, per exemple 'Running, Chasing, Climbing'. Per tant, caldrà que utilitzeu el mètode pandas.Series.str.contains().
Disposeu de més jocs de proves al fitxer tests-activitat.txt.
3.2. Funció parc_max_color (2 punts)¶
- esquirols.parc_max_color(df, c)¶
Per exemple,
>>> parc_max_color(df, 'Gray')
'Tompkins Square Park'
>>> parc_max_color(df, 'Cinnamon')
'McCarren Park'
>>> parc_max_color(df, 'Black')
'Stuyvesant Square Park'
Disposeu de més jocs de proves al fitxer tests-max-color.txt.