From caf1a9da7558f5afa3f32ba397e63a7d94c78b83 Mon Sep 17 00:00:00 2001
From: ~ Gius <70314219+teragramgius@users.noreply.github.com>
Date: Sat, 2 Dec 2023 14:51:30 +0100
Subject: [PATCH] up new mashb
---
1.MASHUP/mashup(b).ipynb | 3164 --------------------------------------
1 file changed, 3164 deletions(-)
delete mode 100644 1.MASHUP/mashup(b).ipynb
diff --git a/1.MASHUP/mashup(b).ipynb b/1.MASHUP/mashup(b).ipynb
deleted file mode 100644
index 65e4bb8..0000000
--- a/1.MASHUP/mashup(b).ipynb
+++ /dev/null
@@ -1,3164 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "NhhkAA5NnB50"
- },
- "source": [
- "# unemployment and activity rate in Italy // foreign and Italian"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "wy8e7mV-nzAk"
- },
- "source": [
- "# unemployment rate"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 151,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "NXypyWKpnZGF",
- "outputId": "6a9894a9-3e89-419d-e4b1-f4d3a63c564e"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (5.15.0)\n",
- "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly) (8.2.3)\n",
- "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from plotly) (23.2)\n",
- "Requirement already satisfied: chart_studio in /usr/local/lib/python3.10/dist-packages (1.1.0)\n",
- "Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (from chart_studio) (5.15.0)\n",
- "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from chart_studio) (2.31.0)\n",
- "Requirement already satisfied: retrying>=1.3.3 in /usr/local/lib/python3.10/dist-packages (from chart_studio) (1.3.4)\n",
- "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from chart_studio) (1.16.0)\n",
- "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly->chart_studio) (8.2.3)\n",
- "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from plotly->chart_studio) (23.2)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->chart_studio) (3.3.2)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->chart_studio) (3.6)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->chart_studio) (2.0.7)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->chart_studio) (2023.11.17)\n"
- ]
- }
- ],
- "source": [
- "# install packages\n",
- "!pip install plotly\n",
- "!pip install chart_studio"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 152,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "sOpS_L2ona-B",
- "outputId": "ad851560-d0a6-4d47-aeed-9713af785253"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Requirement already satisfied: jupyter-dash in /usr/local/lib/python3.10/dist-packages (0.4.2)\n",
- "Requirement already satisfied: dash in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (2.14.2)\n",
- "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (2.31.0)\n",
- "Requirement already satisfied: flask in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (2.2.5)\n",
- "Requirement already satisfied: retrying in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (1.3.4)\n",
- "Requirement already satisfied: ipython in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (7.34.0)\n",
- "Requirement already satisfied: ipykernel in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (5.5.6)\n",
- "Requirement already satisfied: ansi2html in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (1.8.0)\n",
- "Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.10/dist-packages (from jupyter-dash) (1.5.8)\n",
- "Requirement already satisfied: Werkzeug<3.1 in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (3.0.1)\n",
- "Requirement already satisfied: plotly>=5.0.0 in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (5.15.0)\n",
- "Requirement already satisfied: dash-html-components==2.0.0 in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (2.0.0)\n",
- "Requirement already satisfied: dash-core-components==2.0.0 in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (2.0.0)\n",
- "Requirement already satisfied: dash-table==5.0.0 in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (5.0.0)\n",
- "Requirement already satisfied: typing-extensions>=4.1.1 in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (4.5.0)\n",
- "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (67.7.2)\n",
- "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.10/dist-packages (from dash->jupyter-dash) (6.8.0)\n",
- "Requirement already satisfied: Jinja2>=3.0 in /usr/local/lib/python3.10/dist-packages (from flask->jupyter-dash) (3.1.2)\n",
- "Requirement already satisfied: itsdangerous>=2.0 in /usr/local/lib/python3.10/dist-packages (from flask->jupyter-dash) (2.1.2)\n",
- "Requirement already satisfied: click>=8.0 in /usr/local/lib/python3.10/dist-packages (from flask->jupyter-dash) (8.1.7)\n",
- "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.10/dist-packages (from ipykernel->jupyter-dash) (0.2.0)\n",
- "Requirement already satisfied: traitlets>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from ipykernel->jupyter-dash) (5.7.1)\n",
- "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.10/dist-packages (from ipykernel->jupyter-dash) (6.1.12)\n",
- "Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipykernel->jupyter-dash) (6.3.2)\n",
- "Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (0.19.1)\n",
- "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (4.4.2)\n",
- "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (0.7.5)\n",
- "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (3.0.41)\n",
- "Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (2.16.1)\n",
- "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (0.2.0)\n",
- "Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (0.1.6)\n",
- "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython->jupyter-dash) (4.9.0)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->jupyter-dash) (3.3.2)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->jupyter-dash) (3.6)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->jupyter-dash) (2.0.7)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->jupyter-dash) (2023.11.17)\n",
- "Requirement already satisfied: six>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from retrying->jupyter-dash) (1.16.0)\n",
- "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython->jupyter-dash) (0.8.3)\n",
- "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2>=3.0->flask->jupyter-dash) (2.1.3)\n",
- "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython->jupyter-dash) (0.7.0)\n",
- "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly>=5.0.0->dash->jupyter-dash) (8.2.3)\n",
- "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from plotly>=5.0.0->dash->jupyter-dash) (23.2)\n",
- "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython->jupyter-dash) (0.2.12)\n",
- "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata->dash->jupyter-dash) (3.17.0)\n",
- "Requirement already satisfied: jupyter-core>=4.6.0 in /usr/local/lib/python3.10/dist-packages (from jupyter-client->ipykernel->jupyter-dash) (5.5.0)\n",
- "Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.10/dist-packages (from jupyter-client->ipykernel->jupyter-dash) (23.2.1)\n",
- "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.10/dist-packages (from jupyter-client->ipykernel->jupyter-dash) (2.8.2)\n",
- "Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from jupyter-core>=4.6.0->jupyter-client->ipykernel->jupyter-dash) (4.0.0)\n"
- ]
- }
- ],
- "source": [
- "# per la chart\n",
- "!pip install jupyter-dash\n",
- "import dash_core_components as dcc\n",
- "import dash_html_components as html\n",
- "from dash.dependencies import Input, Output"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 153,
- "metadata": {
- "id": "-LYKXxTPnbcb"
- },
- "outputs": [],
- "source": [
- "# import packages\n",
- "import pandas as pd\n",
- "import numpy as np\n",
- "import scipy as sp\n",
- "import plotly.express as px\n",
- "import chart_studio.plotly as py\n",
- "import plotly.graph_objects as go"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 154,
- "metadata": {
- "id": "8CcpMDAoTfkE"
- },
- "outputs": [],
- "source": [
- "#first, a list with the more relevant names of the columns is createad\n",
- "infocol = [\"Territory\", \"Data type\", \"Gender\", \"Highest level of education attained\", \"Citizenship\", \"TIME\", \"Value\"]\n",
- "#then, the csv files are read and we use the list created before to only have information about those\n",
- "\n",
- "unem_r_Df = pd.read_csv('https://raw.githubusercontent.com/openaccesstoimmigrants/openaccesstoimmigrants/main/_datasets/ISTAT_Unemployment_rate_region_2018_2022_.csv')[infocol]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 155,
- "metadata": {
- "id": "nCC0ygFjXAiU"
- },
- "outputs": [],
- "source": [
- "#here a function is defined in order to delete rows that might not interest us\n",
- "def delete_row(dataframe, column_name, value_to_delete):\n",
- " filtered_dataframe = dataframe[dataframe[column_name] != value_to_delete]\n",
- "\n",
- " return filtered_dataframe"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 156,
- "metadata": {
- "id": "qTADy5NiXGdx"
- },
- "outputs": [],
- "source": [
- "#sometimes the year value might include information about quarters, so this is another function to take only the values with 4 digits\n",
- "def y_val(dataframe):\n",
- "\n",
- " dataframe['TIME'] = dataframe['TIME'].astype('str')\n",
- " mask = (dataframe['TIME'].str.len() == 4)\n",
- " dataframe= dataframe.loc[mask]\n",
- "\n",
- " return dataframe"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 157,
- "metadata": {
- "id": "fMxfF2GtXJ1M"
- },
- "outputs": [],
- "source": [
- "#applying the year function for the unem_r_Df\n",
- "unem_r_Df = y_val(unem_r_Df)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 158,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 424
- },
- "id": "Hrf4RXvBXRpd",
- "outputId": "8d7cdc7c-98ba-463c-cd50-e9100b313b2a"
- },
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Territory Data type Gender \\\n",
- "150 Italy unemployment rate total \n",
- "155 Italy unemployment rate total \n",
- "160 Italy unemployment rate total \n",
- "165 Italy unemployment rate total \n",
- "166 Italy unemployment rate total \n",
- "... ... ... ... \n",
- "11497 Centro (I) unemployment rate total \n",
- "11502 Centro (I) unemployment rate total \n",
- "11507 Centro (I) unemployment rate total \n",
- "11512 Centro (I) unemployment rate total \n",
- "11513 Centro (I) unemployment rate total \n",
- "\n",
- " Highest level of education attained Citizenship TIME \\\n",
- "150 upper and post secondary italian 2018 \n",
- "155 upper and post secondary italian 2019 \n",
- "160 upper and post secondary italian 2020 \n",
- "165 upper and post secondary italian 2021 \n",
- "166 upper and post secondary italian 2022 \n",
- "... ... ... ... \n",
- "11497 no educational degree, primary and lower secon... italian 2018 \n",
- "11502 no educational degree, primary and lower secon... italian 2019 \n",
- "11507 no educational degree, primary and lower secon... italian 2020 \n",
- "11512 no educational degree, primary and lower secon... italian 2021 \n",
- "11513 no educational degree, primary and lower secon... italian 2022 \n",
- "\n",
- " Value \n",
- "150 9.715354 \n",
- "155 8.966533 \n",
- "160 8.425699 \n",
- "165 8.673861 \n",
- "166 7.368649 \n",
- "... ... \n",
- "11497 11.549672 \n",
- "11502 9.998387 \n",
- "11507 10.639449 \n",
- "11512 11.358337 \n",
- "11513 8.639894 \n",
- "\n",
- "[720 rows x 7 columns]"
- ],
- "text/html": [
- "\n",
- "
\n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Territory | \n",
- " Data type | \n",
- " Gender | \n",
- " Highest level of education attained | \n",
- " Citizenship | \n",
- " TIME | \n",
- " Value | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 150 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " upper and post secondary | \n",
- " italian | \n",
- " 2018 | \n",
- " 9.715354 | \n",
- "
\n",
- " \n",
- " 155 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " upper and post secondary | \n",
- " italian | \n",
- " 2019 | \n",
- " 8.966533 | \n",
- "
\n",
- " \n",
- " 160 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " upper and post secondary | \n",
- " italian | \n",
- " 2020 | \n",
- " 8.425699 | \n",
- "
\n",
- " \n",
- " 165 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " upper and post secondary | \n",
- " italian | \n",
- " 2021 | \n",
- " 8.673861 | \n",
- "
\n",
- " \n",
- " 166 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " upper and post secondary | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.368649 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 11497 | \n",
- " Centro (I) | \n",
- " unemployment rate | \n",
- " total | \n",
- " no educational degree, primary and lower secon... | \n",
- " italian | \n",
- " 2018 | \n",
- " 11.549672 | \n",
- "
\n",
- " \n",
- " 11502 | \n",
- " Centro (I) | \n",
- " unemployment rate | \n",
- " total | \n",
- " no educational degree, primary and lower secon... | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.998387 | \n",
- "
\n",
- " \n",
- " 11507 | \n",
- " Centro (I) | \n",
- " unemployment rate | \n",
- " total | \n",
- " no educational degree, primary and lower secon... | \n",
- " italian | \n",
- " 2020 | \n",
- " 10.639449 | \n",
- "
\n",
- " \n",
- " 11512 | \n",
- " Centro (I) | \n",
- " unemployment rate | \n",
- " total | \n",
- " no educational degree, primary and lower secon... | \n",
- " italian | \n",
- " 2021 | \n",
- " 11.358337 | \n",
- "
\n",
- " \n",
- " 11513 | \n",
- " Centro (I) | \n",
- " unemployment rate | \n",
- " total | \n",
- " no educational degree, primary and lower secon... | \n",
- " italian | \n",
- " 2022 | \n",
- " 8.639894 | \n",
- "
\n",
- " \n",
- "
\n",
- "
720 rows × 7 columns
\n",
- "
\n",
- "
\n",
- "
\n"
- ]
- },
- "metadata": {},
- "execution_count": 158
- }
- ],
- "source": [
- "#applying the deletion function to take out rows we're not interested\n",
- "unem_r_Df = delete_row(unem_r_Df, \"Gender\", \"females\")\n",
- "unem_r_Df = delete_row(unem_r_Df, \"Gender\", \"males\")\n",
- "unem_r_Df = delete_row(unem_r_Df, \"Citizenship\", \"total\")\n",
- "unem_r_Df"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 159,
- "metadata": {
- "id": "0GHAR_-9YzER"
- },
- "outputs": [],
- "source": [
- "def filter_dataframe_by_value(df, column, value):\n",
- " \"\"\"\n",
- " Keep only the rows where the specified column has the given value.\n",
- "\n",
- " Parameters:\n",
- " - df: pandas DataFrame\n",
- " - column: str, column name\n",
- " - value: value to filter on\n",
- "\n",
- " Returns:\n",
- " - pandas DataFrame with filtered rows\n",
- " \"\"\"\n",
- " return df[df[column] == value]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 160,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 990
- },
- "id": "xuE7WCVRY1OB",
- "outputId": "3a8e4c15-683b-4bf7-92c6-89564cc5db8d"
- },
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Territory Data type Gender Highest level of education attained \\\n",
- "200 Italy unemployment rate total total \n",
- "205 Italy unemployment rate total total \n",
- "210 Italy unemployment rate total total \n",
- "215 Italy unemployment rate total total \n",
- "216 Italy unemployment rate total total \n",
- "925 Italy unemployment rate total total \n",
- "930 Italy unemployment rate total total \n",
- "935 Italy unemployment rate total total \n",
- "940 Italy unemployment rate total total \n",
- "941 Italy unemployment rate total total \n",
- "5424 Italy unemployment rate total total \n",
- "5429 Italy unemployment rate total total \n",
- "5434 Italy unemployment rate total total \n",
- "5439 Italy unemployment rate total total \n",
- "5440 Italy unemployment rate total total \n",
- "9348 Italy unemployment rate total total \n",
- "9353 Italy unemployment rate total total \n",
- "9358 Italy unemployment rate total total \n",
- "9363 Italy unemployment rate total total \n",
- "9364 Italy unemployment rate total total \n",
- "10623 Italy unemployment rate total total \n",
- "10628 Italy unemployment rate total total \n",
- "10633 Italy unemployment rate total total \n",
- "10638 Italy unemployment rate total total \n",
- "10639 Italy unemployment rate total total \n",
- "11322 Italy unemployment rate total total \n",
- "11327 Italy unemployment rate total total \n",
- "11332 Italy unemployment rate total total \n",
- "11337 Italy unemployment rate total total \n",
- "11338 Italy unemployment rate total total \n",
- "\n",
- " Citizenship TIME Value \n",
- "200 italian 2018 10.182574 \n",
- "205 italian 2019 9.468407 \n",
- "210 italian 2020 8.891429 \n",
- "215 italian 2021 8.957717 \n",
- "216 italian 2022 7.620690 \n",
- "925 foreign 2018 13.973459 \n",
- "930 foreign 2019 13.783589 \n",
- "935 foreign 2020 13.315631 \n",
- "940 foreign 2021 14.372673 \n",
- "941 foreign 2022 11.999410 \n",
- "5424 italian 2018 10.045196 \n",
- "5429 italian 2019 9.346621 \n",
- "5434 italian 2020 8.801839 \n",
- "5439 italian 2021 8.832019 \n",
- "5440 italian 2022 7.497267 \n",
- "9348 foreign 2018 13.774335 \n",
- "9353 foreign 2019 13.575160 \n",
- "9358 foreign 2020 13.158501 \n",
- "9363 foreign 2021 14.173818 \n",
- "9364 foreign 2022 11.852616 \n",
- "10623 italian 2018 10.373671 \n",
- "10628 italian 2019 9.654127 \n",
- "10633 italian 2020 9.078433 \n",
- "10638 italian 2021 9.129100 \n",
- "10639 italian 2022 7.762746 \n",
- "11322 foreign 2018 14.075179 \n",
- "11327 foreign 2019 13.883779 \n",
- "11332 foreign 2020 13.420688 \n",
- "11337 foreign 2021 14.520578 \n",
- "11338 foreign 2022 12.035583 "
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Territory | \n",
- " Data type | \n",
- " Gender | \n",
- " Highest level of education attained | \n",
- " Citizenship | \n",
- " TIME | \n",
- " Value | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 200 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2018 | \n",
- " 10.182574 | \n",
- "
\n",
- " \n",
- " 205 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.468407 | \n",
- "
\n",
- " \n",
- " 210 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2020 | \n",
- " 8.891429 | \n",
- "
\n",
- " \n",
- " 215 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2021 | \n",
- " 8.957717 | \n",
- "
\n",
- " \n",
- " 216 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.620690 | \n",
- "
\n",
- " \n",
- " 925 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2018 | \n",
- " 13.973459 | \n",
- "
\n",
- " \n",
- " 930 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2019 | \n",
- " 13.783589 | \n",
- "
\n",
- " \n",
- " 935 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2020 | \n",
- " 13.315631 | \n",
- "
\n",
- " \n",
- " 940 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2021 | \n",
- " 14.372673 | \n",
- "
\n",
- " \n",
- " 941 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2022 | \n",
- " 11.999410 | \n",
- "
\n",
- " \n",
- " 5424 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2018 | \n",
- " 10.045196 | \n",
- "
\n",
- " \n",
- " 5429 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.346621 | \n",
- "
\n",
- " \n",
- " 5434 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2020 | \n",
- " 8.801839 | \n",
- "
\n",
- " \n",
- " 5439 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2021 | \n",
- " 8.832019 | \n",
- "
\n",
- " \n",
- " 5440 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.497267 | \n",
- "
\n",
- " \n",
- " 9348 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2018 | \n",
- " 13.774335 | \n",
- "
\n",
- " \n",
- " 9353 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2019 | \n",
- " 13.575160 | \n",
- "
\n",
- " \n",
- " 9358 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2020 | \n",
- " 13.158501 | \n",
- "
\n",
- " \n",
- " 9363 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2021 | \n",
- " 14.173818 | \n",
- "
\n",
- " \n",
- " 9364 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2022 | \n",
- " 11.852616 | \n",
- "
\n",
- " \n",
- " 10623 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2018 | \n",
- " 10.373671 | \n",
- "
\n",
- " \n",
- " 10628 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.654127 | \n",
- "
\n",
- " \n",
- " 10633 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2020 | \n",
- " 9.078433 | \n",
- "
\n",
- " \n",
- " 10638 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2021 | \n",
- " 9.129100 | \n",
- "
\n",
- " \n",
- " 10639 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.762746 | \n",
- "
\n",
- " \n",
- " 11322 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2018 | \n",
- " 14.075179 | \n",
- "
\n",
- " \n",
- " 11327 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2019 | \n",
- " 13.883779 | \n",
- "
\n",
- " \n",
- " 11332 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2020 | \n",
- " 13.420688 | \n",
- "
\n",
- " \n",
- " 11337 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2021 | \n",
- " 14.520578 | \n",
- "
\n",
- " \n",
- " 11338 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " total | \n",
- " total | \n",
- " foreign | \n",
- " 2022 | \n",
- " 12.035583 | \n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n"
- ]
- },
- "metadata": {},
- "execution_count": 160
- }
- ],
- "source": [
- "filtered_df = filter_dataframe_by_value(unem_r_Df, 'Territory', 'Italy')\n",
- "filtered_df\n",
- "filtered_dfDEF = filter_dataframe_by_value(filtered_df, 'Highest level of education attained', 'total')\n",
- "filtered_dfDEF"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 161,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 990
- },
- "id": "al_NcceHaWb_",
- "outputId": "a14ad3cc-db0a-4060-bdee-b164954acce3"
- },
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Territory Data type Citizenship TIME Value\n",
- "200 Italy unemployment rate italian 2018 10.182574\n",
- "205 Italy unemployment rate italian 2019 9.468407\n",
- "210 Italy unemployment rate italian 2020 8.891429\n",
- "215 Italy unemployment rate italian 2021 8.957717\n",
- "216 Italy unemployment rate italian 2022 7.620690\n",
- "925 Italy unemployment rate foreign 2018 13.973459\n",
- "930 Italy unemployment rate foreign 2019 13.783589\n",
- "935 Italy unemployment rate foreign 2020 13.315631\n",
- "940 Italy unemployment rate foreign 2021 14.372673\n",
- "941 Italy unemployment rate foreign 2022 11.999410\n",
- "5424 Italy unemployment rate italian 2018 10.045196\n",
- "5429 Italy unemployment rate italian 2019 9.346621\n",
- "5434 Italy unemployment rate italian 2020 8.801839\n",
- "5439 Italy unemployment rate italian 2021 8.832019\n",
- "5440 Italy unemployment rate italian 2022 7.497267\n",
- "9348 Italy unemployment rate foreign 2018 13.774335\n",
- "9353 Italy unemployment rate foreign 2019 13.575160\n",
- "9358 Italy unemployment rate foreign 2020 13.158501\n",
- "9363 Italy unemployment rate foreign 2021 14.173818\n",
- "9364 Italy unemployment rate foreign 2022 11.852616\n",
- "10623 Italy unemployment rate italian 2018 10.373671\n",
- "10628 Italy unemployment rate italian 2019 9.654127\n",
- "10633 Italy unemployment rate italian 2020 9.078433\n",
- "10638 Italy unemployment rate italian 2021 9.129100\n",
- "10639 Italy unemployment rate italian 2022 7.762746\n",
- "11322 Italy unemployment rate foreign 2018 14.075179\n",
- "11327 Italy unemployment rate foreign 2019 13.883779\n",
- "11332 Italy unemployment rate foreign 2020 13.420688\n",
- "11337 Italy unemployment rate foreign 2021 14.520578\n",
- "11338 Italy unemployment rate foreign 2022 12.035583"
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Territory | \n",
- " Data type | \n",
- " Citizenship | \n",
- " TIME | \n",
- " Value | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 200 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2018 | \n",
- " 10.182574 | \n",
- "
\n",
- " \n",
- " 205 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.468407 | \n",
- "
\n",
- " \n",
- " 210 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2020 | \n",
- " 8.891429 | \n",
- "
\n",
- " \n",
- " 215 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2021 | \n",
- " 8.957717 | \n",
- "
\n",
- " \n",
- " 216 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.620690 | \n",
- "
\n",
- " \n",
- " 925 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2018 | \n",
- " 13.973459 | \n",
- "
\n",
- " \n",
- " 930 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2019 | \n",
- " 13.783589 | \n",
- "
\n",
- " \n",
- " 935 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2020 | \n",
- " 13.315631 | \n",
- "
\n",
- " \n",
- " 940 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2021 | \n",
- " 14.372673 | \n",
- "
\n",
- " \n",
- " 941 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2022 | \n",
- " 11.999410 | \n",
- "
\n",
- " \n",
- " 5424 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2018 | \n",
- " 10.045196 | \n",
- "
\n",
- " \n",
- " 5429 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.346621 | \n",
- "
\n",
- " \n",
- " 5434 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2020 | \n",
- " 8.801839 | \n",
- "
\n",
- " \n",
- " 5439 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2021 | \n",
- " 8.832019 | \n",
- "
\n",
- " \n",
- " 5440 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.497267 | \n",
- "
\n",
- " \n",
- " 9348 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2018 | \n",
- " 13.774335 | \n",
- "
\n",
- " \n",
- " 9353 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2019 | \n",
- " 13.575160 | \n",
- "
\n",
- " \n",
- " 9358 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2020 | \n",
- " 13.158501 | \n",
- "
\n",
- " \n",
- " 9363 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2021 | \n",
- " 14.173818 | \n",
- "
\n",
- " \n",
- " 9364 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2022 | \n",
- " 11.852616 | \n",
- "
\n",
- " \n",
- " 10623 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2018 | \n",
- " 10.373671 | \n",
- "
\n",
- " \n",
- " 10628 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2019 | \n",
- " 9.654127 | \n",
- "
\n",
- " \n",
- " 10633 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2020 | \n",
- " 9.078433 | \n",
- "
\n",
- " \n",
- " 10638 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2021 | \n",
- " 9.129100 | \n",
- "
\n",
- " \n",
- " 10639 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " italian | \n",
- " 2022 | \n",
- " 7.762746 | \n",
- "
\n",
- " \n",
- " 11322 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2018 | \n",
- " 14.075179 | \n",
- "
\n",
- " \n",
- " 11327 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2019 | \n",
- " 13.883779 | \n",
- "
\n",
- " \n",
- " 11332 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2020 | \n",
- " 13.420688 | \n",
- "
\n",
- " \n",
- " 11337 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2021 | \n",
- " 14.520578 | \n",
- "
\n",
- " \n",
- " 11338 | \n",
- " Italy | \n",
- " unemployment rate | \n",
- " foreign | \n",
- " 2022 | \n",
- " 12.035583 | \n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n"
- ]
- },
- "metadata": {},
- "execution_count": 161
- }
- ],
- "source": [
- "filtered_dfDEF = filtered_dfDEF.drop('Gender', axis=1)\n",
- "filtered_dfDEF = filtered_dfDEF.drop('Highest level of education attained', axis=1)\n",
- "filtered_dfDEF"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 162,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 548
- },
- "id": "_7H662UjcXjE",
- "outputId": "7ba8a169-f665-4576-cceb-4c6087818697"
- },
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- ""
- ],
- "image/png": "iVBORw0KGgoAAAANSUhEUgAABGEAAAITCAYAAACnqgHCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAByH0lEQVR4nO3dd3hUZfrG8fvMTDLpjRYIoYMgIiJgAaSJFBVFRcTKgmV1baioKzbcVVkVQZS17U/FDqjYUQSUpoCAoKJIUUoooaVMeqac3x9JhoQQCJDMmSTfz3XN5eTMmXeeAx5Cbt73eQ3TNE0BAAAAAACgWtmsLgAAAAAAAKAuIIQBAAAAAAAIAEIYAAAAAACAACCEAQAAAAAACABCGAAAAAAAgAAghAEAAAAAAAgAQhgAAAAAAIAAqPUhjGmacrlcMk3T6lIAAAAAAEAdVutDmKysLMXGxiorK8vqUgAAAAAAQB1W60MYAAAAAACAYOCwugAAAAAAAHBiCgsLlZeXZ3UZdVJ4eLhCQ0MrdS4hDAAAAAAANZTP59PmzZuVl5cnwzCsLqdOMk1T4eHhatOmjWy2Iy84IoQBAAAAAKCG2rx5swoKCtS4cWNFRkYSxASYaZrKycnRnj17tHnzZrVr1+6I5xPCAAAAAABQA5UsQWrcuLEaNmxodTl1VmRkpCRp9+7dKiwsPOLSJBrzAgAAAABQA5UsQSoJAWCdkllIR+vLQwgDAAAAAEANxhIk61X294AQBgAAAAAAIAAIYQAAAAAAQBmGYeidd9454jnDhw/XeeedF6CKju5oNc+ZM0eGYWj//v0BrKosQhgAAAAAAOqYlJQU/e1vf1PTpk0VGhqqxMRE9e/fX5999pkkafv27brsssskSRs2bJBhGFq2bFmZMV555RW9//77Aa/9ePXv31/bt29XQkKCZTWwOxIAAAAAAHXIhg0bdM455ygmJkZPPPGETj/9dBUWFurzzz/XnXfeqYsuukjJyclHHadevXoBqLbqhIWFVeq6qhMzYQAAAAAAqENuuukmGYahn376SaNGjVKnTp3UtWtXTZgwQStXrpRUdmlP+/btJUk9evSQYRg644wzJJVdjlQyW+bQR8m5kvTNN9+oW7duCgsLU2JiokaPHi2Xy+V/PSkpSQ888IBGjBihyMhINW7cWM8++6z/9fz8fI0aNUoNGjSQ0+lUkyZNNH78+DLXtm/fPg0cOFBhYWFq3ry53nvvPf9rhy5HeuGFFxQdHa133nlHzZs3l9Pp1DnnnKM///yzyn6tD0UIAwAAAABAHbF3714tWbJE119/vWJiYsq9Xr9+/XLHFi1aJEn69NNPtX37dn3xxRflzmndurW2b9/uf/zwww+Ki4tTjx49JEm///67hg0bposvvlirVq3SO++8oxUrVmjMmDFlxnnppZfUtWtX/fjjjxo9erTuu+8+/fLLL5KkiRMn6ptvvtE777yjX3/9VdOnT1eLFi3KvP+pp57S8OHDtXr1ap177rm68cYbtXfv3gp/PfLz8/Wf//xHr7/+uhYsWKDMzExdfvnlR/5FPAEsRwIAAAAAoI5Yv369TNNUhw4dKv2eRo0aSZIaNGhQ4XIeh8Phfy03N1cXXnihunTp4p/J8thjj2nYsGF6+OGHJUmnnHKKnnvuOQ0ZMkS5ubmKiIiQJPXr10/333+/JOnxxx/XK6+8orlz5+rUU0/V9u3b1aJFC5133nmy2Wxq165duTpGjhypm266SZL03HPP6Y033tCSJUv8/W0O5fF49MILL6hfv36SpLfeektdunTRokWL1KdPn0r/GlUWM2EAAAAAAKgjfD5ftX/GyJEjlZOTo9mzZ8tut0uSfvvtN3344YeKiIjwPy6++GL5fD5t2LDB/95OnTr5n9tsNtWvX98/k+WGG27Q+vXr1apVK40ePVoff/xxuc/u3Lmz/3lMTIyioqKUmppaYa12u129e/f2f33aaacpOjpav/766/H/AhwBM2EAAAAAAKgjOnbsKMMwtH79+moZ/7777tPixYv9y5FK5Obm6uqrr9a4cePKvad169b+5yEhIWVeMwzDHxz17NlTW7Zs0ezZszVv3jxdd9116tmzp77++usK3y8FJniqLGbCAAAAAABQRzRs2FC9evXSa6+9VqYpbomSprWlOZ1OSZLX6z3i2G+++aamTJmit956SyeffHKZ1zp16qQNGzaoY8eO5R5hYWGVrj8+Pl7XX3+9ZsyYoTfffFNz5849Ys+Xo/F6vVq6dKn/619++UVZWVllZuRUJUIYAAAAAADqkFdeeUU+n0+nn3663nzzTa1bt05r1qzRE088UWY3oxJJSUlyOp364osvtGPHDh04cKDcOatWrdLNN9+sW2+9VV26dFFKSopSUlL8Acn48eP9uzEtW7ZM69at03vvvadRo0ZVuu4JEybo1Vdf1dq1a/Xrr79q5syZql+//gltle1wOHT77bfru+++09KlS3Xdddepc+fO1dIPRiKEAQAAAACgTunQoYNWrVqlnj17avz48Tr99NM1ePBgfffdd5o2bVq580NCQjRx4kS9+eabat68uYYMGVLunGXLlik/P19Tp05Vs2bN/I8LL7xQknTmmWfqm2++0Z9//qkBAwbojDPO0GOPPaYmTZpUuu6YmBhNmTJFPXr0UI8ePZSSkqJPP/3U33fmeISFhWncuHG67rrrdO655yoyMlIffPDBcY93NIZpmma1jR4EXC6XYmNjlZmZedjttwAAAIBg4PX59P3uPxXhCFW3Rs2tLgdADZCZmalt27apTZs2/t2FUHkvvPCCxo8fr6ysrBMeKzc3V5s3b1bz5s0VGxtb4Xk05gUAAAAstNV1QDM3rdIHm1crNdelEJtdv1/9qMIdoVaXBgCoYoQwAAAAQIDleQr15dZ1mrFppZanbinzmtvnVZ7HTQgDALUQIQwAAAAQAKZpau3+HZqxcaU+2/KzstwFkiRDhvoktdUVbbvploXvWVwlANQdt99+u26//faAfiYhDAAAAFCNDuRna/afazRj4yptyNjjP94sKkFXtO2qy9t0VZOoOJmmqVssrBMAUP0IYQAAAIAq5vX5tHDnRs3ctErzUtbL7fNKkpx2hy5o0UlXtO2msxNbymawWSkA1CWEMAAAAEAVObTJbonO9ZtqZNtuuqhlZ8U6wy2sEABgJUIYAAAA4ARU1GQ33hmhy1p30Yi23XRyQmMLKwQABAtCGAAAAOAYlTTZnblplT79a225Jrsj23XXeckd5LTz120AwEF8VwAAAAAqqbJNdgEAOBxCGAAAAOAIAtVk15Tpf377ohl6se9V9I8BUGv5fD5dffXVmjNnjlwul3744QedffbZVf45c+bM0QUXXKB9+/apfv36VT7+sSKEAQAAAA7Dyia7i3Zt0qDPpmrqOVfozMSW1fIZAGCl2bNn68MPP9RXX32lk046SYmJidXyOf3799f27duVkJBQLeMfK0IYAAAAoNiRmuxe2rqLrghQk90Qm107sjN0+dev6vZT+2nsaecqxGav9s8FgEDZtGmTGjRooAEDBhzX+30+n7xer0JCQo54XlhYmJKTk4/rM6rDic2Z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cnL859x11136/PPP9cEHH2jRokXatWuXLr300nJjjRkzRldcccVhP2fLli26+OKL1b9/f61du1Zz587V/v37DzsOUBsE6t766quvdPXVV+vmm2/WunXr9OKLL2rKlCmaNm1atV0bYKWquLdWr16thg0b6p133tFvv/2mBx98UA888ECZ+2bLli264IIL1K9fP61du1Zjx47VDTfcwF9qUSsF6r4qKChQgwYN9NBDD6lz584BvUbACoG6txYvXqzzzjtPc+bM0erVq9WvXz8NHTpUa9asCej1ohYzUW327t1rSjIXLVpkmqZpZmRkmCEhIeYHH3zgP2f9+vWmJHPZsmXl3v/oo4+anTt3Lnf8gw8+MB0Oh+n1ev3HPvvsM9MwDLOwsLDqLwQIMtV1b1155ZXm8OHDyxx7/vnnzaZNm5o+n69qLwIIQid6b5X4xz/+Yfbr18//9X333Wd27NixzDlXXHGFOWjQoCq+AiD4VNd9VVqfPn3MO++8s0rrBoJdIO6tEieffLL52GOPVU3hqPOYCVONMjMzJUkJCQmSipJXt9utAQMG+M9p3769mjVrpmXLllV63K5du8pms+mNN96Q1+tVZmam3n77bQ0YMEAhISFVexFAEKque6ugoEBhYWFljoWHh2vHjh3atm1bFVQOBLequrcyMzP9Y0jSsmXLyowhSYMGDTqm+xOoqarrvgLqukDdWz6fT1lZWdx/qDKEMNXE5/Np7Nix6tmzp0455RRJUmpqqkJDQxUXF1fm3EaNGik1NbXSY7ds2VLffPONxo8fL6fTqbi4OO3YsUOzZs2qyksAglJ13luDBg3S7NmztWDBAvl8Pm3cuFHPPvuspKK190BtVlX31g8//KCZM2fqpptu8h9LTU1Vo0aNyo3hcrmUl5dXtRcCBJHqvK+AuiyQ99akSZOUnZ2tESNGVFn9qNsIYarJrbfeqnXr1mnGjBlVPnZqaqpuvPFGjRo1SitXrtSiRYsUGhqq4cOHyzTNKv88IJhU571144036rbbbtOFF16o0NBQnXXWWRo5cqQkyWbjj0vUblVxb61bt04XX3yxHn30UQ0cOLAKqwNqJu4roHoE6t5677339Nhjj2nWrFlq2LDhcX8WUBo/VVSD2267TV988YW+++47NW3a1H88MTFRhYWFysjIKHP+nj17lJiYWOnx//vf/yo2NlZPP/20unTpot69e+udd97RggULtGLFiqq6DCDoVPe9ZRiGnnrqKWVnZ2vbtm1KTU3VGWecIUlq1apVlVwDEIyq4t76/fffde655+qmm27SQw89VOa1xMTEcruV7dmzRzExMQoPD6/aiwGCRHXfV0BdFah7a8aMGbrhhhs0a9ascktqgRNBCFOFTNPUbbfdpo8//ljffvutWrZsWeb1rl27KiQkRAsWLPAf27Bhg7Zv366zzz670p+Tm5tb7l/l7Xa7pKKpeUBtE6h7q4TdbldSUpJCQ0P1/vvv6+yzz1aDBg1O+DqAYFNV99Zvv/2mfv36adSoUXriiSfKfc7ZZ59dZgxJmjdv3nHdn0CwC9R9BdQ1gby33n//fY0ePVrvv/++Lrjgguq5INRZDqsLqE1uvfVWvffee/r0008VHR3tX3sYGxur8PBwxcbG6vrrr9fdd9+thIQExcTE6Pbbb9fZZ5+ts846yz/O5s2blZ2drdTUVOXl5Wnt2rWSpJNPPlmhoaG64IILNGXKFP3rX//SlVdeqaysLI0fP17NmzdXly5drLh0oFoF6t7av3+/PvzwQ/Xt21f5+fl64403/FscArVRVdxb69atU//+/TVo0CDdfffd/jHsdrs/vLz55ps1bdo03XfffRozZoy+/fZbzZo1S19++aU1Fw5Uo0DdV5L838eys7O1b98+rV27VqGhoTr55JMDe9FAAATq3nrvvfc0atQoTZ06VWeeeab/nJLPAE6YlVsz1TaSDvt44403/Ofk5eWZ//jHP8z4+HgzIiLCvOSSS8zdu3eXGadPnz6HHWfLli3+c95//32zS5cuZmRkpNmgQQPzoosuMtevXx+gKwUCK1D31r59+8yzzjrLjIyMNCMiIsxzzz3XXL58eQCvFAisqri3Hn300cOO0bx58zKf9d1335mnnXaaGRoaarZq1arMZwC1SSDvq8qcA9QWgbq3Kvr74qhRowJ3sajVDNOkkysAAAAAAEB1oycMAAAAAABAABDCAAAAAAAABAAhDAAAAAAAQAAQwgAAAAAAAAQAIQwAAAAAAEAAEMIAAAAAAAAEACEMAAAAAABAABDCAAAAAAAABAAhDAAAAAAAQAAQwgAAUEcZhnHEx4QJE7R161YZhqG1a9dKkv9ru92unTt3lhlv9+7dcjgcMgxDW7duLXP+4R7Lly8P8BUDAABYy2F1AQAAwBq7d+/2P585c6YeeeQRbdiwwX8sKipK+/fvP+x7k5KS9NZbb+mBBx7wH3vzzTeVlJSk7du3lzt//vz56tixY5lj9erVO9FLAAAAqFGYCQMAQB2VmJjof8TGxsowjDLHoqKiKnzvqFGj9MYbb5Q59sYbb2jUqFGHPb9evXplxk5MTFRISEiVXg8AAECwI4QBAADH7KKLLlJ6erqWLl0qSVq6dKnS09M1dOhQiysDAAAIXoQwAADgmIWEhOiaa67R66+/Lkl6/fXXdc0111Q4u6VHjx6Kiooq8wAAAKhr6AkDAACOy5gxY9SjRw89+eST+uCDD7Rs2TJ5PJ7Dnjtz5kx16NAhwBUCAAAEF0IYAABwXDp16qT27dvryiuvVIcOHXTKKaf4d1E6VHJystq0aRPYAgEAAIIMy5EAAMBxGzNmjBYuXKgxY8ZYXQoAAEDQYyYMAAA4bjfeeKMuv/xyxcXFHfG8AwcOKDU1tcyxuLg4hYWFVWN1AAAAwYUQBgAAHDeHw6H69esf9bwBAwaUO/b+++9r5MiR1VEWAABAUDJM0zStLgIAAAAAAKC2oycMAAAAAABAABDCAAAAAAAABAAhDAAAAAAAQAAQwgAAAAAAAAQAIQwAAAAAAEAAEMIAAAAAAAAEACEMAAAAAABAABDCAAAAAAAABAAhDAAAAAAAQAAQwgAAAAAAAAQAIQwAAAAAAEAA/D9F4cwytChxCQAAAABJRU5ErkJggg==\n"
- },
- "metadata": {}
- }
- ],
- "source": [
- "from matplotlib import pyplot as plt\n",
- "import seaborn as sns\n",
- "def _plot_series(series, series_name, series_index=0):\n",
- " from matplotlib import pyplot as plt\n",
- " import seaborn as sns\n",
- " palette = list(sns.palettes.mpl_palette('Dark2'))\n",
- " xs = series['TIME']\n",
- " ys = series['Value']\n",
- "\n",
- " plt.plot(xs, ys, label=series_name, color=palette[series_index % len(palette)])\n",
- "\n",
- "fig, ax = plt.subplots(figsize=(10, 5.2), layout='constrained')\n",
- "df_sorted = filtered_dfDEF.sort_values('TIME', ascending=True)\n",
- "for i, (series_name, series) in enumerate(df_sorted.groupby('Citizenship')):\n",
- " _plot_series(series, series_name, i)\n",
- " fig.legend(title='Citizenship', bbox_to_anchor=(1, 1), loc='upper left')\n",
- "sns.despine(fig=fig, ax=ax)\n",
- "plt.xlabel('TIME')\n",
- "_ = plt.ylabel('Value')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 163,
- "metadata": {
- "id": "k7w1f1iBfpoG"
- },
- "outputs": [],
- "source": [
- "for18_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2018') & (filtered_dfDEF['Citizenship'] == 'foreign')]\n",
- "for19_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2019') & (filtered_dfDEF['Citizenship'] == 'foreign')]\n",
- "for20_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2020') & (filtered_dfDEF['Citizenship'] == 'foreign')]\n",
- "for21_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2021') & (filtered_dfDEF['Citizenship'] == 'foreign')]\n",
- "for22_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2022') & (filtered_dfDEF['Citizenship'] == 'foreign')]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 164,
- "metadata": {
- "id": "i0My1_J7gdsL"
- },
- "outputs": [],
- "source": [
- "unemFor18 = for18_filtered_dfDEF['Value'].sum()\n",
- "unemFor19 = for19_filtered_dfDEF['Value'].sum()\n",
- "unemFor20 = for20_filtered_dfDEF['Value'].sum()\n",
- "unemFor21 = for21_filtered_dfDEF['Value'].sum()\n",
- "unemFor22 = for22_filtered_dfDEF['Value'].sum()\n",
- "\n",
- "unFo = [unemFor18, unemFor19, unemFor20, unemFor21, unemFor22]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 165,
- "metadata": {
- "id": "C5B5NA70gd1C"
- },
- "outputs": [],
- "source": [
- "it18_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2018') & (filtered_dfDEF['Citizenship'] == 'italian')]\n",
- "it19_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2019') & (filtered_dfDEF['Citizenship'] == 'italian')]\n",
- "it20_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2020') & (filtered_dfDEF['Citizenship'] == 'italian')]\n",
- "it21_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2021') & (filtered_dfDEF['Citizenship'] == 'italian')]\n",
- "it22_filtered_dfDEF = filtered_dfDEF[(filtered_dfDEF['TIME'] == '2022') & (filtered_dfDEF['Citizenship'] == 'italian')]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 166,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "3OIDp6SShJOT",
- "outputId": "412fcbf6-a291-4dd2-d1a2-d55f2e654438"
- },
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- "[30.601441, 28.469155, 26.771701, 26.918836, 22.880703]"
- ]
- },
- "metadata": {},
- "execution_count": 166
- }
- ],
- "source": [
- "unemIt18 = it18_filtered_dfDEF['Value'].sum()\n",
- "unemIt19 = it19_filtered_dfDEF['Value'].sum()\n",
- "unemIt20 = it20_filtered_dfDEF['Value'].sum()\n",
- "unemIt21 = it21_filtered_dfDEF['Value'].sum()\n",
- "unemIt22 = it22_filtered_dfDEF['Value'].sum()\n",
- "\n",
- "unIt = [unemIt18, unemIt19, unemIt20, unemIt21, unemIt22]\n",
- "unIt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 167,
- "metadata": {
- "id": "Ljwalm5mjFfd"
- },
- "outputs": [],
- "source": [
- "year = ['2018', '2019', '2020', '2021', '2022', '2018', '2019', '2020', '2021', '2022']\n",
- "citizenship = ['foreign', 'foreign', 'foreign', 'foreign', 'foreign','italian', 'italian', 'italian', 'italian', 'italian']\n",
- "unemploymentRates = unFo + unIt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 168,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 363
- },
- "id": "qZI2EzF3cgNC",
- "outputId": "6e24b47d-f7f9-4ad6-816a-2c3f9e2f30a4"
- },
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Citizenship TIME Value\n",
- "0 foreign 2018 41.822973\n",
- "1 foreign 2019 41.242528\n",
- "2 foreign 2020 39.894820\n",
- "3 foreign 2021 43.067069\n",
- "4 foreign 2022 35.887609\n",
- "5 italian 2018 30.601441\n",
- "6 italian 2019 28.469155\n",
- "7 italian 2020 26.771701\n",
- "8 italian 2021 26.918836\n",
- "9 italian 2022 22.880703"
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Citizenship | \n",
- " TIME | \n",
- " Value | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " foreign | \n",
- " 2018 | \n",
- " 41.822973 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " foreign | \n",
- " 2019 | \n",
- " 41.242528 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " foreign | \n",
- " 2020 | \n",
- " 39.894820 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " foreign | \n",
- " 2021 | \n",
- " 43.067069 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " foreign | \n",
- " 2022 | \n",
- " 35.887609 | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " italian | \n",
- " 2018 | \n",
- " 30.601441 | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " italian | \n",
- " 2019 | \n",
- " 28.469155 | \n",
- "
\n",
- " \n",
- " 7 | \n",
- " italian | \n",
- " 2020 | \n",
- " 26.771701 | \n",
- "
\n",
- " \n",
- " 8 | \n",
- " italian | \n",
- " 2021 | \n",
- " 26.918836 | \n",
- "
\n",
- " \n",
- " 9 | \n",
- " italian | \n",
- " 2022 | \n",
- " 22.880703 | \n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n"
- ]
- },
- "metadata": {},
- "execution_count": 168
- }
- ],
- "source": [
- "df = pd.DataFrame({'Citizenship': citizenship, 'TIME': year, 'Value': unemploymentRates})\n",
- "df"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 169,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 363
- },
- "id": "f5Qsl35droAF",
- "outputId": "f8541b26-27a8-4ccb-8309-2e6f713acdab"
- },
- "outputs": [
- {
- "output_type": "execute_result",
- "data": {
- "text/plain": [
- " Citizenship Year % Unemployment GDP\n",
- "0 foreign 2018 41.822973 0.925811\n",
- "1 foreign 2019 41.242528 0.483198\n",
- "2 foreign 2020 39.894820 -8.974192\n",
- "3 foreign 2021 43.067069 8.313760\n",
- "4 foreign 2022 35.887609 3.724549\n",
- "5 italian 2018 30.601441 0.925811\n",
- "6 italian 2019 28.469155 0.483198\n",
- "7 italian 2020 26.771701 -8.974192\n",
- "8 italian 2021 26.918836 8.313760\n",
- "9 italian 2022 22.880703 3.724549"
- ],
- "text/html": [
- "\n",
- " \n",
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Citizenship | \n",
- " Year | \n",
- " % Unemployment | \n",
- " GDP | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " foreign | \n",
- " 2018 | \n",
- " 41.822973 | \n",
- " 0.925811 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " foreign | \n",
- " 2019 | \n",
- " 41.242528 | \n",
- " 0.483198 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " foreign | \n",
- " 2020 | \n",
- " 39.894820 | \n",
- " -8.974192 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " foreign | \n",
- " 2021 | \n",
- " 43.067069 | \n",
- " 8.313760 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " foreign | \n",
- " 2022 | \n",
- " 35.887609 | \n",
- " 3.724549 | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " italian | \n",
- " 2018 | \n",
- " 30.601441 | \n",
- " 0.925811 | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " italian | \n",
- " 2019 | \n",
- " 28.469155 | \n",
- " 0.483198 | \n",
- "
\n",
- " \n",
- " 7 | \n",
- " italian | \n",
- " 2020 | \n",
- " 26.771701 | \n",
- " -8.974192 | \n",
- "
\n",
- " \n",
- " 8 | \n",
- " italian | \n",
- " 2021 | \n",
- " 26.918836 | \n",
- " 8.313760 | \n",
- "
\n",
- " \n",
- " 9 | \n",
- " italian | \n",
- " 2022 | \n",
- " 22.880703 | \n",
- " 3.724549 | \n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
\n",
- "
\n"
- ]
- },
- "metadata": {},
- "execution_count": 169
- }
- ],
- "source": [
- "df['GDP'] = '1' # Set a default value for the new column\n",
- "df.loc[df['TIME'] == '2018', 'GDP'] = 0.925811\n",
- "df.loc[df['TIME'] == '2019', 'GDP'] = 0.483198\n",
- "df.loc[df['TIME'] == '2020', 'GDP'] = -8.974192\n",
- "df.loc[df['TIME'] == '2021', 'GDP'] = 8.31376\n",
- "df.loc[df['TIME'] == '2022', 'GDP'] = 3.724549\n",
- "df['GDP'] = df['GDP'].astype(float)\n",
- "df['TIME'] = df['TIME'].astype(int)\n",
- "df = df.rename(columns={'Value': '% Unemployment'})\n",
- "df = df.rename(columns={'TIME': 'Year'})\n",
- "df"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 170,
- "metadata": {
- "id": "059DwZRULfbG"
- },
- "outputs": [],
- "source": [
- "df['Change in Unemployment Rate'] = df['% Unemployment'].diff()\n",
- "df['Change in GDP'] = df['GDP'].diff()\n",
- "\n",
- "# Define the Okun's coefficient (you can adjust this value based on your analysis)\n",
- "okuns_coefficient = 0.5\n",
- "\n",
- "# Calculate the Okun's Law relationship\n",
- "df['Okun\\'s Law'] = -okuns_coefficient * df['Change in GDP']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 171,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 629
- },
- "id": "Z7mVcvklOdma",
- "outputId": "d68ab3ac-becc-4bf6-c787-7ca2891d2dde"
- },
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "