.. py:module:: pobresa Pobresa i risc d'exclusió ========================= Dins del catàleg de dades obertes del portal Transparència de Catalunya, es poden trobar indicadors comarcals de risc de pobresa i risc d'exclusió entre l'any 2012 i l'any 2018 (vegeu `Indicadors de risc de pobresa i exclusió `__). En el fitxer :download:`riscpobresa.csv ` trobareu dades extretes d'aquest portal. Descarregueu el fitxer i creeu un :py:ref:`DataFrame ` de pandas amb les dades. Examineu el nom de les seves columnes. En el portal, trobareu una explicació del seu significat. Analitzeu els valors d'algunes de les seves files. En el mòdul :py:mod:`pobresa` (fitxer :file:`pobresa.py`), deseu les funcions següents: 1. Dissenyeu la funció :py:func:`pensions_comarca_any` que, donat :py:ref:`DataFrame ` creat a partir de dades com les de l'exemple, donat un nom de comarca (:py:class:`str`) i un any (:py:class:`int`) retorna l'import mitjà de les pensions contributives de la població de 65 anys (i més) en aquella comarca i any. Si no hi ha dades per la comarca i any donats, la funció ha de retornar -1. Observem que el nom de la comarca és a la columna de nom ``'Literal'``. Per exemple, essent :code:`df` el dataframe que conté les dades del fitxer d'exemple: .. literalinclude:: test-riscpobresa.txt :language: python :lines: 3-7 2. Dissenyeu la funció :py:func:`mes_atur_molt_llarg` que, donat un :py:ref:`DataFrame ` com el de l'exemple i un any (:py:class:`int`), retorna una tupla formada pel nom de la comarca que ha tingut el percentatge més alt d'aturats de **molt** llarga durada i aquest percentatge, en l'any donat En cas d'empat, el nom de la comarca ha de ser la primera en l'ordre del :py:ref:`DataFrame `. Si no hi ha dades per l'any donat, la funció ha de retornar ``('', 0)``. Aneu en compte de no confondre les columnes: ``"Població en situació d'atur de llarga durada"`` i ``"Població en situació d'atur de molt llarga durada"``. Ens interessa aquesta segona: **molt** llarga durada. Per exemple, essent :code:`df` el dataframe que conté les dades anteriors: .. literalinclude:: test-riscpobresa.txt :language: python :lines: 14-18 3. Per saber-ne més sobre la distribució de l'atur per comarques, dissenyeu la funció :py:func:`ranquing_atur_llarg` que, donat un :py:ref:`DataFrame ` com el de l'exemple i un enter ``n`` retorna una llista de ``n`` tuples formades per un nom de comarca i la mitjana aritmètica del percentatge de persones en atur de llarga durada en aquella comarca pels anys dels quals es disposa de dades. La llista ha d'estar ordenada de més atur a menys i ha de correspondre a les ``n`` comarques amb més atur de llarga durada de tot el dataframe. Compte que per aquesta pregunta no ens interessa **molt llarga durada** sinó simplement **llarga durada**. Per exemple, essent :code:`df` el dataframe que conté les dades anteriors: .. literalinclude:: test-riscpobresa.txt :language: python :lines: 28-32 4. El `coeficient de correlació de Pearson `__ mesura la relació lineal entre dues variables. Dissenyeu la funció :py:func:`pearson` que donat un :py:ref:`DataFrame ` com el de l'exemple i donats dos noms de variables (noms de columnes) del :py:ref:`DataFrame `, retorna el coeficient de correlació de Pearson entre les dues variables. Cal excloure del càlcul els valors que manquen (``NaN``). Per exemple, essent :code:`df` el dataframe que conté les dades anteriors: .. literalinclude:: test-riscpobresa.txt :language: python :lines: 34-37 .. note:: Per una possible solució podeu investigar el mètode :py:meth:`~pandas.Series.corr` Disposeu de més tests al fitxer :download:`test-riscpobresa.txt ` i d'una solució al fitxer :download:`pobresa.py `