.. py:module:: farma Despeses farmacèutiques ======================= Cada any es publiquen en accés obert les dades de despeses en farmàcia a Catalunya. Hem descarregat un fitxer d'exemple corresponent a l'any 2017: :download:`r2017.csv`. Utilitzant les dades d'aquest fitxer, creeu un :py:ref:`DataFrame ` de pandas. Estudieu el fitxer i examineu el nom de les seves columnes i algunes de les seves files. Hi ha una classificació de les persones assegurades per la seva residència, sexe i edat i una classificació de la tipologia de medicaments receptats. .. literalinclude:: test-farma.txt :language: python :lines: 5-11 Les funcions que es demanen tot seguit cal desar-les al mòdul :py:mod:`farma` (fitxer :file:`farma.py`). Disposeu de jocs de proves al fitxer :download:`test-farma.txt`. #. Dissenyeu la funció :py:func:`nombre_receptes` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, en retorni el nombre total de receptes. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 17-20 #. Dissenyeu la funció :py:func:`dades_barcelona` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, retorni un altre :py:ref:`DataFrame ` que contingui només les columnes :code:`"6 trams d'edat"` i :code:`"Nombre de receptes"`, i només les files corresponents a despeses de persones assegurades amb residència a la regió sanitària de Barcelona. El :py:ref:`DataFrame ` retornat ha d'estar ordenat i indexat com el :py:ref:`DataFrame ` original. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 28-35 #. Dissenyeu la funció :py:func:`tipologia_sexe` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, retorni una llista ordenada de petit a gran amb els diferents valors que hi ha a la columna ``'Sexe'``. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 49 - 50 #. Dissenyeu la funció :py:func:`percentatge_receptes_sexe` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, i un string indicant un tipus de sexe, retorni el percentatge del nombre de receptes d'aquest tipus de sexe respecte del nombre de receptes total. Aquesta funció ha de cridar la funció :py:func:`nombre_receptes`. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 56 - 61 #. Dissenyeu la funció :py:func:`mitjana_per_edat` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, retorni una :py:ref:`Series ` indicant la mitjana del nombre de receptes per tram d'edat. Els valors de les mitjanes han d'estar arrodonits a 2 decimals. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 75 - 85 #. Dissenyeu la funció :py:func:`atc` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, i un codi de grup ATC, retorni el nombre de receptes total i el nombre de receptes per homes i per dones corresponents a aquest grup ATC. Aquesta funció ha de cridar la funció :py:func:`nombre_receptes`. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 91 - 94 #. Dissenyeu la funció :py:func:`atc_max` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, retorni un string corresponent al codi de grup ATC amb més receptes. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 104 - 105 #. Dissenyeu la funció :py:func:`classifica_edat` que, donat un enter que representa una edat, retorni l'string que indica el tram que comprèn aquesta edat. Els 6 possibles strings són els següents: ``'0 - 14 anys'``, ``'15 - 44 anys'``, ``'45 - 64 anys'``, ``'65 - 74 anys'``, ``'75 - 84 any s'`` i ``'85 anys o més'``. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 111 - 114 #. Dissenyeu la funció :py:func:`atc_max_grup` que, donat un :py:ref:`DataFrame ` de despeses farmacèutiques, `df`, un string indicant el sexe de la persona assegurada (``'Home'`` o ``'Dona'``) i un enter indicant una edat, retorni un altre string corresponent al codi de grup ATC amb més receptes per les persones d'aquell sexe i del tram d'edat que comprèn l'edat donada. Aquesta funció ha de cridar les funcions :py:func:`classifica_edat` i :py:func:`atc_max`. Exemple: .. literalinclude:: test-farma.txt :language: python :lines: 124 - 127 .. rubric:: Solució Disposeu d'una solució al fitxer :download:`farma.py`