.. py:module:: vacunacio Vacunació 2021 ============== En data de primers de maig de 2021, del web `Dades_Obertes `__ de la Generalitat de Catalunya hem descarregat un fitxer amb dades sobre la vacunació per al covid-19 que hem simplificat. El fitxer :download:`vacunacio.csv` és un exemple de fitxer d'aquestes característiques. Usant les dades d'aquest fitxer hem creat un :py:ref:`DataFrame ` de vacunació que farem servir en els següents exercicis. Familiaritzeu-vos amb la informació del fitxer :download:`vacunacio.csv` i del :py:ref:`DataFrame ` de vacunació corresponent. A l'exemple que segueix podeu veure que hi ha 9 columnes i també es mostren dades d'algunes files i de totes les columnes excepte la de la província: .. literalinclude:: test-vacunacio.txt :language: python :lines: 7-23 A cada fila hi ha informació del que en direm *una sessió de vacunació*: hi ha informació de la zona: província i comarca; de les persones cridades a vacunar-se: sexe i edat; i de la vacuna: data de vacunació, marca de la vacuna i dosi (primera o segona). A més, hi ha la columna ``'VACC'`` que indica si les persones s'han vacunat o no i la columna ``'COMP'`` que indica el nombre de persones amb les característiques de la fila. Al mòdul :py:mod:`vacunacio` (fitxer :file:`vacunacio.py`) implementeu les funcions següents: .. function:: vacunes(df, nom_prov) Retorna dos enters, el nombre de persones cridades a vacunar-se que s'han vacunat i el nombre de les que no s'han vacunat, a partir del :py:ref:`DataFrame ` de vacunació `df` i per la província `nom_prov` (string). Exemples: .. literalinclude:: test-vacunacio.txt :language: python :lines: 28-32 .. function:: max_vacunes(df, d1, d2) Donat un :py:ref:`DataFrame ` de vacunació, `df`, i dos strings representant dues dates, :math:`d1` i :math:`d2` (amb el format ``'aaaa/mm/dd'``, i tals que :math:`d1 \leq d2`), retorna una tupla amb els valors de les columnes ``'COMARCA', 'EDAT', 'DATA', 'MARCA'`` i ``'COMP'`` corresponents a la *sessió de vacunació* (és a dir la fila de `df`) de la data entre les dates :math:`d1` i :math:`d2` (ambdúes incloses) en què s'han posat més vacunes. Exemples: .. literalinclude:: test-vacunacio.txt :language: python :lines: 41-45 .. function:: valors_possibles(df, nom_columna) Retorna una llista amb tots els valors possibles que hi ha a la columna `nom_columna` del :py:ref:`DataFrame ` de vacunació `df`, ordenats lexicogràficament. Exemples: .. literalinclude:: test-vacunacio.txt :language: python :lines: 52-56 .. function:: df_edats(df) Retorna un :py:ref:`DataFrame ` on l'índex són totes les possibles franges d'edats que hi ha al :py:ref:`DataFrame ` de vacunació `df`, les columnes són totes les possibles marques de vacunes que apareixen a `df` i els elements són enters corresponents al nombre de dosis de vacuna donada per cada franja d'edat i marca. Les franjes d'edat i marques en el :py:ref:`DataFrame ` retornat han d'estar en ordre lexicogràfic. Exemples: .. literalinclude:: test-vacunacio.txt :language: python :lines: 65-82 Disposeu dels jocs de proves als fitxers :download:`test-vacunacio.txt` i :download:`tests.txt`. .. rubric:: Solució Disposeu d'una solució al fitxer :download:`vacunacio.py`.