.. 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`.