============================== Pandas: meteorologia (4 punts) ============================== .. py:module::meteo.py 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` com aquest: .. literalinclude:: lectura-meteo.txt :language: python Descarregueu-vos el fitxer :download:`meteo.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 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. Vent fluix ---------- La variació de temperatura diària és la diferència entre la temperatura màxima i la mínima enregistrades aquell dia. Es demana que dissenyeu la funció següent, que heu de desar al fitxer :file:`meteo.py`: .. py:function:: vent_fluix(df, llindar) :param df: instància de :py:class:`~pandas.DataFrame` amb dades meteorològiques d'un mes. :param llindar: llindar de variació de la temperatura (un número). :return: D'entre tots els dies en què la variació de temperatura ha superat el valor `llindar`, l'índex del dia en què el vent ha estat més suau, o sigui, aquell dia en què la mitjana de la velocitat del vent ha estat més petit. En cas que no hi hagi cap dia en què la variació de temperatura hagi superat el valor `llindar`, cal retornar -1. Per exemple, essent ``df`` el dataframe de l'exemple de més amunt, la funció ha de respondre així: .. literalinclude:: tests-vfluix.txt :language: python :start-after: --ini-casos :end-before: --fi-casos Disposeu de jocs de proves al fitxer :download:`tests-vfluix.txt`. Pluja segons la direcció del vent --------------------------------- Volem conèixer si hi ha una relació entre la direcció del vent i la pluja. A tal fi, dissenyeu la funció següent, que heu de desar al fitxer :file:`meteo.py`: .. py:function:: dir_vent_pluja(df) :param df: instància de :py:class:`~pandas.DataFrame` amb dades meteorològiques d'un mes. :return: diccionari (:py:class:`dict`) amb el total de litres per cada direcció del vent. És a dir, les claus del diccionari han de ser les direccions del vent (:py:class:`string`) de `df` i els valors associats el total de pluja acumulada per cada direcció del vent. Per exemple, essent ``df`` el dataframe de l'exemple de més amunt, la funció ha de respondre així: .. literalinclude:: tests-dirpluja.txt :language: python :start-after: --ini-casos :end-before: --fi-casos Disposeu de jocs de proves al fitxer :download:`tests-dirpluja.txt`.