Covid-19 ======== .. py:module:: covid En data de primers de maig de 2020, del web `Dades_Obertes `__ de la Generalitat de Catalunya hem descarregat un fitxer amb dades sobre la covid-19 que hem simplificat. El fitxer :download:`covid-19.csv` és un exemple de fitxer d'aquestes característiques. Usant les dades d'aquest fitxer hem creat un :py:ref:`DataFrame ` que farem servir en els següents exercicis. Familiaritzeu-vos amb la informació d'aquest fitxer i del :py:ref:`DataFrame ` corresponent. A l'exemple que segueix podeu veure que hi ha 10 columnes i també es mostren dades de les primeres 5 files i de només 6 de les columnes: .. literalinclude:: test-covid.txt :language: python :lines: 4-16 Podem veure que hi ha *agrupaments* de 3 tipus, representats per les columnes ``'Regio sanitaria'``, ``'Sector sanitari'`` i ``'ABS'`` (Àrea Bàsica de Salut), on hi ha els noms d'aquests *agrupaments*. A part del nom, els *agrupaments* tenen un codi representat en les columnes ``'RS codi'``, ``'Sector codi'`` i ``'ABS codi'``, respectivament. Una regió sanitària engloba diversos sectors sanitaris i un sector sanitari engloba diverses ABS. El nom i el codi que representa cadascuna de les regions sanitàries, sectors sanitaris i ABS són únics i es compleix que cada nom va associat sempre al mateix codi. Al mòdul :py:mod:`covid` (fitxer :file:`covid.py`) implementeu les funcions següents: #. Dissenya la funció :py:func:`resultats` que rep 5 paràmetres: un :py:ref:`DataFrame ` com el de l'exemple inicial i 4 strings: el nom d'una regió sanitària, dues dates, :math:`d1` i :math:`d2` (amb el format ``'aaaa-mm-dd'``, i tals que :math:`d1 \leq d2`) i un resultat covid (``'Positiu'`` o ``'Negatiu'``). La funció retorna dos enters: el nombre de casos amb el resultat covid donat i el total de casos, tots dos referits a la regió sanitària donada i entre les dates donades (ambdues incloses). Exemple: .. literalinclude:: test-covid.txt :language: python :lines: 24-29 #. Dissenya la funció :py:func:`casos_agrupament` que a partir d'un :py:ref:`DataFrame ` com el de l'exemple inicial, un string indicant un tipus d'agrupament (``'Regio sanitaria'``, ``'Sector sanitari'`` o ``'ABS'``) i un altre string amb un resultat (``'Positiu'`` o ``'Negatiu'``), retorni una :py:ref:`Series ` on l'índex sigui el nom de cada agrupament del tipus donat i el valor el nombre de casos positius o negatius, segons correspongui, d'aquell agrupament. La :py:ref:`Series ` retornada ha d'estar ordenada pel nombre de casos en ordre ascendent. Exemple: .. literalinclude:: test-covid.txt :language: python :lines: 36-47 #. Dissenya la funció :py:func:`arees_basiques` que, donat un :py:ref:`DataFrame ` com el de l'exemple inicial, retorna una llista de tuples de la forma (nom ABS, codi ABS) amb totes les ABS (àrees bàsiques de salut) que consten en el :py:ref:`DataFrame ` donat, sense repeticions i en ordre ascendent tenint en compte el nom de l'ABS. Exemple: .. literalinclude:: test-covid.txt :language: python :lines: 74-80 Disposeu de jocs de proves al fitxer :download:`test-covid.txt`. .. rubric:: Solució Disposeu d'una solució al fitxer :download:`covid.py`