.. py:module::meteo.py Pandas (3 punts) ================ Una estació meteorològica disposa de les dades recollides diàriament al llarg d'un mes en fitxers amb el `format CSV `_. Si llegim un d'aquests fitxers mitjançant la següent comanda de `pandas `_, obtenim un :py:class:`~pandas.DataFrame`: .. literalinclude:: tests-plujos.txt :language: python :end-before: --fi-lectura Descarregueu-vos el fitxer :download:`meteo.csv`, proveu de llegir-lo en l'intèrpret de Python **tal com s'indica en l'exemple amunt** i examineu les columnes que conté. Observeu que les dades estan ordenades temporalment, essent l'índex el número del dia del mes, i que la taula pot contenir valors desconeguts en qualsevol cel·la. Les funcions que es demanen a continuació han de treballar amb un :py:class:`~pandas.DataFrame` qualsevol amb la mateixa estructura (índex numèric ordenat i columnes), **però no necessàriament el mateix de l'exemple**, poden ser dades de qualsevol mes. Dia més plujós (1 punt) ------------------------ Dissenyeu la funció següent, que heu de desar al fitxer :file:`meteo.py`: .. py:function:: var_temp_plujos(df) :param df: una instància de :py:class:`~pandas.DataFrame` amb dades meteorològiques d'un mes. :return: un :py:class:`float` que representa la variació de temperatura del dia més plujós, és a dir la diferència entre la temperatura màxima i la mínima del dia del mes que ha plogut més. Per exemple, essent ``df`` el dataframe de l'exemple de més amunt, la funció ha de respondre així: .. literalinclude:: tests-plujos.txt :language: python :start-after: --ini-casos :end-before: --fi-casos Disposeu de jocs de proves al fitxer :download:`tests-plujos.txt`. Recompte de direccions del vent (2 punts) ----------------------------------------- Dissenyeu la funció següent, que heu de desar al fitxer :file:`meteo.py`: .. py:function:: direccions_vent(df) :param df: una instància de :py:class:`~pandas.DataFrame` amb dades meteorològiques d'un mes. :return: un diccionari (:py:class:`dict`) amb el recompte de valors de direcció del vent de la taula. Específicament, les claus del diccionari han de ser els valors de les direccions del vent (un :py:class:`string`) i els valors el nombre de dies en què ha bufat el vent en cada direcció possible. El diccionari només ha de contenir les direccions del vent no enregistrades durant el mes. Ara bé, si en el DataFrame hi ha algun valor nul (NaN) com a direcció del vent, el diccionari ha de contenir la clau :py:const:`'???'` i com a valor associat el nombre de lectures diàries de direcció del vent no vàlides (valors nuls). Per exemple, essent ``df`` el dataframe de l'exemple de més amunt, la funció ha de respondre així: .. literalinclude:: tests-vents.txt :language: python :start-after: --ini-casos :end-before: --fi-casos Disposeu de jocs de proves al fitxer :download:`tests-vents.txt`.