{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPython 3.6.8\n", "IPython 7.5.0\n", "\n", "numpy 1.16.3\n", "scipy 1.2.1\n", "sklearn 0.21.1\n", "pandas 0.24.2\n", "matplotlib 3.0.3\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p numpy,scipy,sklearn,pandas,matplotlib" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**1장 – 한 눈에 보는 머신러닝**\n", "\n", "_이 노트북은 1장의 그림을 생성하기 위한 것입니다._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 설정" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "파이썬 2와 3을 모두 지원합니다. 공통 모듈을 임포트하고 맷플롯립 그림이 노트북 안에 포함되도록 설정하고 생성한 그림을 저장하기 위한 함수를 준비합니다:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "# 파이썬 2와 파이썬 3 지원\n", "from __future__ import division, print_function, unicode_literals\n", "\n", "# 공통\n", "import numpy as np\n", "import os\n", "\n", "# 일관된 출력을 위해 유사난수 초기화\n", "np.random.seed(42)\n", "\n", "# 맷플롯립 설정\n", "%matplotlib inline\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "plt.rcParams['axes.labelsize'] = 14\n", "plt.rcParams['xtick.labelsize'] = 12\n", "plt.rcParams['ytick.labelsize'] = 12\n", "\n", "# 한글출력\n", "matplotlib.rc('font', family='NanumBarunGothic')\n", "plt.rcParams['axes.unicode_minus'] = False\n", "\n", "# 그림을 저장할 폴드\n", "PROJECT_ROOT_DIR = \".\"\n", "CHAPTER_ID = \"fundamentals\"\n", "\n", "def save_fig(fig_id, tight_layout=True):\n", " path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n", " if tight_layout:\n", " plt.tight_layout()\n", " plt.savefig(path, format='png', dpi=300)\n", "\n", "# SciPy 이슈 #5998에 해당하는 경고를 무시합니다(https://github.com/scipy/scipy/issues/5998).\n", "import warnings\n", "warnings.filterwarnings(action=\"ignore\", module=\"scipy\", message=\"^internal gelsd\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 예제 1-1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "이 함수는 OECD의 삶의 만족도(life satisfaction) 데이터와 IMF의 1인당 GDP(GDP per capita) 데이터를 합칩니다.\n", "이는 번거로운 작업이고 머신러닝과는 관계가 없기 때문에 책 안에 포함시키지 않았습니다." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def prepare_country_stats(oecd_bli, gdp_per_capita):\n", " oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n", " oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n", " gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n", " gdp_per_capita.set_index(\"Country\", inplace=True)\n", " full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,\n", " left_index=True, right_index=True)\n", " full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n", " remove_indices = [0, 1, 6, 8, 33, 34, 35]\n", " keep_indices = list(set(range(36)) - set(remove_indices))\n", " return full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "책에 있는 코드는 데이터 파일이 현재 디렉토리에 있다고 가정합니다. 여기에서는 datasets/lifesat 안에서 파일을 읽어 들입니다." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import os\n", "datapath = os.path.join(\"datasets\", \"lifesat\", \"\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[[5.96242338]]\n" ] } ], "source": [ "# 샘플 코드\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import sklearn.linear_model\n", "\n", "# 데이터 적재\n", "oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n", "gdp_per_capita = pd.read_csv(datapath + \"gdp_per_capita.csv\",thousands=',',delimiter='\\t',\n", " encoding='latin1', na_values=\"n/a\")\n", "\n", "# 데이터 준비\n", "country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)\n", "X = np.c_[country_stats[\"GDP per capita\"]]\n", "y = np.c_[country_stats[\"Life satisfaction\"]]\n", "\n", "# 데이터 시각화\n", "ax = country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction')\n", "ax.set(xlabel=\"1인당 GDP\", ylabel=\"삶의 만족도\")\n", "plt.show()\n", "\n", "# 선형 모델 선택\n", "model = sklearn.linear_model.LinearRegression()\n", "\n", "# 모델 훈련\n", "model.fit(X, y)\n", "\n", "# 키프로스에 대한 예측\n", "X_new = [[22587]] # 키프로스 1인당 GDP\n", "print(model.predict(X_new)) # 결과 [[ 5.96242338]]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[5.76666667]]\n" ] } ], "source": [ "import sklearn.neighbors\n", "\n", "# 선형 회귀 모델을 k-최근접 이웃 회귀 모델로 교체할 경우\n", "knn = sklearn.neighbors.KNeighborsRegressor(n_neighbors=3)\n", "\n", "# 모델 훈련\n", "knn.fit(X, y)\n", "\n", "# 키프로스에 대한 예측\n", "print(knn.predict(X_new)) # 결과 [[ 5.76666667]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 알림: 이후의 코드는 무시해도 좋습니다. 이 코드는 1장에 있는 그림을 생성하기 위한 것입니다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 삶의 만족도 데이터 적재와 준비" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "필요하면 OECE 웹사이트에서 새 데이터를 받을 수 있습니다. http://stats.oecd.org/index.aspx?DataSetCode=BLI 에서 CSV 파일을 다운받아 `datasets/lifesat/`에 저장합니다." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IndicatorAir pollutionAssault rateConsultation on rule-makingDwellings without basic facilitiesEducational attainmentEmployees working very long hoursEmployment rateHomicide rateHousehold net adjusted disposable incomeHousehold net financial wealth...Long-term unemployment ratePersonal earningsQuality of support networkRooms per personSelf-reported healthStudent skillsTime devoted to leisure and personal careVoter turnoutWater qualityYears in education
Country
Australia13.02.110.51.176.014.0272.00.831588.047657.0...1.0850449.092.02.385.0512.014.4193.091.019.4
Austria27.03.47.11.083.07.6172.00.431173.049887.0...1.1945199.089.01.669.0500.014.4675.094.017.0
\n", "

2 rows × 24 columns

\n", "
" ], "text/plain": [ "Indicator Air pollution Assault rate Consultation on rule-making \\\n", "Country \n", "Australia 13.0 2.1 10.5 \n", "Austria 27.0 3.4 7.1 \n", "\n", "Indicator Dwellings without basic facilities Educational attainment \\\n", "Country \n", "Australia 1.1 76.0 \n", "Austria 1.0 83.0 \n", "\n", "Indicator Employees working very long hours Employment rate Homicide rate \\\n", "Country \n", "Australia 14.02 72.0 0.8 \n", "Austria 7.61 72.0 0.4 \n", "\n", "Indicator Household net adjusted disposable income \\\n", "Country \n", "Australia 31588.0 \n", "Austria 31173.0 \n", "\n", "Indicator Household net financial wealth ... Long-term unemployment rate \\\n", "Country ... \n", "Australia 47657.0 ... 1.08 \n", "Austria 49887.0 ... 1.19 \n", "\n", "Indicator Personal earnings Quality of support network Rooms per person \\\n", "Country \n", "Australia 50449.0 92.0 2.3 \n", "Austria 45199.0 89.0 1.6 \n", "\n", "Indicator Self-reported health Student skills \\\n", "Country \n", "Australia 85.0 512.0 \n", "Austria 69.0 500.0 \n", "\n", "Indicator Time devoted to leisure and personal care Voter turnout \\\n", "Country \n", "Australia 14.41 93.0 \n", "Austria 14.46 75.0 \n", "\n", "Indicator Water quality Years in education \n", "Country \n", "Australia 91.0 19.4 \n", "Austria 94.0 17.0 \n", "\n", "[2 rows x 24 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oecd_bli = pd.read_csv(datapath + \"oecd_bli_2015.csv\", thousands=',')\n", "oecd_bli = oecd_bli[oecd_bli[\"INEQUALITY\"]==\"TOT\"]\n", "oecd_bli = oecd_bli.pivot(index=\"Country\", columns=\"Indicator\", values=\"Value\")\n", "oecd_bli.head(2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Country\n", "Australia 7.3\n", "Austria 6.9\n", "Belgium 6.9\n", "Brazil 7.0\n", "Canada 7.3\n", "Name: Life satisfaction, dtype: float64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oecd_bli[\"Life satisfaction\"].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1인당 GDP 데이터 적재와 준비" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "위와 마찬가지로 필요하면 1인당 GDP 데이터를 새로 받을 수 있습니다. http://goo.gl/j1MSKe (=> imf.org)에서 다운받아 `datasets/lifesat/`에 저장하면 됩니다." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Subject DescriptorUnitsScaleCountry/Series-specific NotesGDP per capitaEstimates Start After
Country
AfghanistanGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...599.9942013.0
AlbaniaGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...3995.3832010.0
\n", "
" ], "text/plain": [ " Subject Descriptor Units \\\n", "Country \n", "Afghanistan Gross domestic product per capita, current prices U.S. dollars \n", "Albania Gross domestic product per capita, current prices U.S. dollars \n", "\n", " Scale Country/Series-specific Notes \\\n", "Country \n", "Afghanistan Units See notes for: Gross domestic product, curren... \n", "Albania Units See notes for: Gross domestic product, curren... \n", "\n", " GDP per capita Estimates Start After \n", "Country \n", "Afghanistan 599.994 2013.0 \n", "Albania 3995.383 2010.0 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdp_per_capita = pd.read_csv(datapath+\"gdp_per_capita.csv\", thousands=',', delimiter='\\t',\n", " encoding='latin1', na_values=\"n/a\")\n", "gdp_per_capita.rename(columns={\"2015\": \"GDP per capita\"}, inplace=True)\n", "gdp_per_capita.set_index(\"Country\", inplace=True)\n", "gdp_per_capita.head(2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Air pollutionAssault rateConsultation on rule-makingDwellings without basic facilitiesEducational attainmentEmployees working very long hoursEmployment rateHomicide rateHousehold net adjusted disposable incomeHousehold net financial wealth...Time devoted to leisure and personal careVoter turnoutWater qualityYears in educationSubject DescriptorUnitsScaleCountry/Series-specific NotesGDP per capitaEstimates Start After
Country
Brazil18.07.94.06.745.010.4167.025.511664.06844.0...14.9779.072.016.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...8669.9982014.0
Mexico30.012.89.04.237.028.8361.023.413085.09056.0...13.8963.067.014.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9009.2802015.0
Russia15.03.82.515.194.00.1669.012.819292.03412.0...14.9765.056.016.0Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9054.9142015.0
Turkey35.05.05.512.734.040.8650.01.214095.03251.0...13.4288.062.016.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...9437.3722013.0
Hungary15.03.67.94.882.03.1958.01.315442.013277.0...15.0462.077.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...12239.8942015.0
Poland33.01.410.83.290.07.4160.00.917852.010919.0...14.2055.079.018.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...12495.3342014.0
Chile46.06.92.09.457.015.4262.04.414533.017733.0...14.4149.073.016.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...13340.9052014.0
Slovak Republic13.03.06.60.692.07.0260.01.217503.08663.0...14.9959.081.016.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...15991.7362015.0
Czech Republic16.02.86.80.992.06.9868.00.818404.017299.0...14.9859.085.018.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...17256.9182015.0
Estonia9.05.53.38.190.03.3068.04.815167.07680.0...14.9064.079.017.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...17288.0832014.0
Greece27.03.76.50.768.06.1649.01.618575.014579.0...14.9164.069.018.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...18064.2882014.0
Portugal18.05.76.50.938.09.6261.01.120086.031245.0...14.9558.086.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...19121.5922014.0
Slovenia26.03.910.30.585.05.6363.00.419326.018465.0...14.6252.088.018.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...20732.4822015.0
Spain24.04.27.30.155.05.8956.00.622477.024774.0...16.0669.071.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...25864.7212014.0
Korea30.02.110.44.282.018.7264.01.119510.029091.0...14.6376.078.017.5Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...27195.1972014.0
Italy21.04.75.01.157.03.6656.00.725166.054987.0...14.9875.071.016.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...29866.5812015.0
Japan24.01.47.36.494.022.2672.00.326111.086764.0...14.9353.085.016.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...32485.5452015.0
Israel21.06.42.53.785.016.0367.02.322104.052933.0...14.4868.068.015.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...35343.3362015.0
New Zealand11.02.210.30.274.013.8773.01.223815.028290.0...14.8777.089.018.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37044.8912015.0
France12.05.03.50.573.08.1564.00.628799.048741.0...15.3380.082.016.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37675.0062015.0
Belgium21.06.64.52.072.04.5762.01.128307.083876.0...15.7189.087.018.9Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...40106.6322014.0
Germany16.03.64.50.186.05.2573.00.531252.050394.0...15.3172.095.018.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...40996.5112014.0
Finland15.02.49.00.685.03.5869.01.427927.018761.0...14.8969.094.019.7Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...41973.9882014.0
Canada15.01.310.50.289.03.9472.01.529365.067913.0...14.2561.091.017.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43331.9612015.0
Netherlands30.04.96.10.073.00.4574.00.927888.077961.0...15.4475.092.018.7Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43603.1152014.0
Austria27.03.47.11.083.07.6172.00.431173.049887.0...14.4675.094.017.0Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43724.0312015.0
United Kingdom13.01.911.50.278.012.7071.00.327029.060778.0...14.8366.088.016.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...43770.6882015.0
Sweden10.05.110.90.088.01.1374.00.729185.060328.0...15.1186.095.019.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...49866.2662014.0
Iceland18.02.75.10.471.012.2582.00.323965.043045.0...14.6181.097.019.8Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...50854.5832014.0
Australia13.02.110.51.176.014.0272.00.831588.047657.0...14.4193.091.019.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...50961.8652014.0
Ireland13.02.69.00.275.04.2060.00.823917.031580.0...15.1970.080.017.6Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...51350.7442014.0
Denmark15.03.97.00.978.02.0373.00.326491.044488.0...16.0688.094.019.4Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...52114.1652015.0
United States18.01.58.30.189.011.3067.05.241355.0145769.0...14.2768.085.017.2Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...55805.2042015.0
Norway16.03.38.10.382.02.8275.00.633492.08797.0...15.5678.094.017.9Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...74822.1062015.0
Switzerland20.04.28.40.086.06.7280.00.533491.0108823.0...14.9849.096.017.3Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...80675.3082015.0
Luxembourg12.04.36.00.178.03.4766.00.438951.061765.0...15.1291.086.015.1Gross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...101994.0932014.0
\n", "

36 rows × 30 columns

\n", "
" ], "text/plain": [ " Air pollution Assault rate Consultation on rule-making \\\n", "Country \n", "Brazil 18.0 7.9 4.0 \n", "Mexico 30.0 12.8 9.0 \n", "Russia 15.0 3.8 2.5 \n", "Turkey 35.0 5.0 5.5 \n", "Hungary 15.0 3.6 7.9 \n", "Poland 33.0 1.4 10.8 \n", "Chile 46.0 6.9 2.0 \n", "Slovak Republic 13.0 3.0 6.6 \n", "Czech Republic 16.0 2.8 6.8 \n", "Estonia 9.0 5.5 3.3 \n", "Greece 27.0 3.7 6.5 \n", "Portugal 18.0 5.7 6.5 \n", "Slovenia 26.0 3.9 10.3 \n", "Spain 24.0 4.2 7.3 \n", "Korea 30.0 2.1 10.4 \n", "Italy 21.0 4.7 5.0 \n", "Japan 24.0 1.4 7.3 \n", "Israel 21.0 6.4 2.5 \n", "New Zealand 11.0 2.2 10.3 \n", "France 12.0 5.0 3.5 \n", "Belgium 21.0 6.6 4.5 \n", "Germany 16.0 3.6 4.5 \n", "Finland 15.0 2.4 9.0 \n", "Canada 15.0 1.3 10.5 \n", "Netherlands 30.0 4.9 6.1 \n", "Austria 27.0 3.4 7.1 \n", "United Kingdom 13.0 1.9 11.5 \n", "Sweden 10.0 5.1 10.9 \n", "Iceland 18.0 2.7 5.1 \n", "Australia 13.0 2.1 10.5 \n", "Ireland 13.0 2.6 9.0 \n", "Denmark 15.0 3.9 7.0 \n", "United States 18.0 1.5 8.3 \n", "Norway 16.0 3.3 8.1 \n", "Switzerland 20.0 4.2 8.4 \n", "Luxembourg 12.0 4.3 6.0 \n", "\n", " Dwellings without basic facilities Educational attainment \\\n", "Country \n", "Brazil 6.7 45.0 \n", "Mexico 4.2 37.0 \n", "Russia 15.1 94.0 \n", "Turkey 12.7 34.0 \n", "Hungary 4.8 82.0 \n", "Poland 3.2 90.0 \n", "Chile 9.4 57.0 \n", "Slovak Republic 0.6 92.0 \n", "Czech Republic 0.9 92.0 \n", "Estonia 8.1 90.0 \n", "Greece 0.7 68.0 \n", "Portugal 0.9 38.0 \n", "Slovenia 0.5 85.0 \n", "Spain 0.1 55.0 \n", "Korea 4.2 82.0 \n", "Italy 1.1 57.0 \n", "Japan 6.4 94.0 \n", "Israel 3.7 85.0 \n", "New Zealand 0.2 74.0 \n", "France 0.5 73.0 \n", "Belgium 2.0 72.0 \n", "Germany 0.1 86.0 \n", "Finland 0.6 85.0 \n", "Canada 0.2 89.0 \n", "Netherlands 0.0 73.0 \n", "Austria 1.0 83.0 \n", "United Kingdom 0.2 78.0 \n", "Sweden 0.0 88.0 \n", "Iceland 0.4 71.0 \n", "Australia 1.1 76.0 \n", "Ireland 0.2 75.0 \n", "Denmark 0.9 78.0 \n", "United States 0.1 89.0 \n", "Norway 0.3 82.0 \n", "Switzerland 0.0 86.0 \n", "Luxembourg 0.1 78.0 \n", "\n", " Employees working very long hours Employment rate \\\n", "Country \n", "Brazil 10.41 67.0 \n", "Mexico 28.83 61.0 \n", "Russia 0.16 69.0 \n", "Turkey 40.86 50.0 \n", "Hungary 3.19 58.0 \n", "Poland 7.41 60.0 \n", "Chile 15.42 62.0 \n", "Slovak Republic 7.02 60.0 \n", "Czech Republic 6.98 68.0 \n", "Estonia 3.30 68.0 \n", "Greece 6.16 49.0 \n", "Portugal 9.62 61.0 \n", "Slovenia 5.63 63.0 \n", "Spain 5.89 56.0 \n", "Korea 18.72 64.0 \n", "Italy 3.66 56.0 \n", "Japan 22.26 72.0 \n", "Israel 16.03 67.0 \n", "New Zealand 13.87 73.0 \n", "France 8.15 64.0 \n", "Belgium 4.57 62.0 \n", "Germany 5.25 73.0 \n", "Finland 3.58 69.0 \n", "Canada 3.94 72.0 \n", "Netherlands 0.45 74.0 \n", "Austria 7.61 72.0 \n", "United Kingdom 12.70 71.0 \n", "Sweden 1.13 74.0 \n", "Iceland 12.25 82.0 \n", "Australia 14.02 72.0 \n", "Ireland 4.20 60.0 \n", "Denmark 2.03 73.0 \n", "United States 11.30 67.0 \n", "Norway 2.82 75.0 \n", "Switzerland 6.72 80.0 \n", "Luxembourg 3.47 66.0 \n", "\n", " Homicide rate Household net adjusted disposable income \\\n", "Country \n", "Brazil 25.5 11664.0 \n", "Mexico 23.4 13085.0 \n", "Russia 12.8 19292.0 \n", "Turkey 1.2 14095.0 \n", "Hungary 1.3 15442.0 \n", "Poland 0.9 17852.0 \n", "Chile 4.4 14533.0 \n", "Slovak Republic 1.2 17503.0 \n", "Czech Republic 0.8 18404.0 \n", "Estonia 4.8 15167.0 \n", "Greece 1.6 18575.0 \n", "Portugal 1.1 20086.0 \n", "Slovenia 0.4 19326.0 \n", "Spain 0.6 22477.0 \n", "Korea 1.1 19510.0 \n", "Italy 0.7 25166.0 \n", "Japan 0.3 26111.0 \n", "Israel 2.3 22104.0 \n", "New Zealand 1.2 23815.0 \n", "France 0.6 28799.0 \n", "Belgium 1.1 28307.0 \n", "Germany 0.5 31252.0 \n", "Finland 1.4 27927.0 \n", "Canada 1.5 29365.0 \n", "Netherlands 0.9 27888.0 \n", "Austria 0.4 31173.0 \n", "United Kingdom 0.3 27029.0 \n", "Sweden 0.7 29185.0 \n", "Iceland 0.3 23965.0 \n", "Australia 0.8 31588.0 \n", "Ireland 0.8 23917.0 \n", "Denmark 0.3 26491.0 \n", "United States 5.2 41355.0 \n", "Norway 0.6 33492.0 \n", "Switzerland 0.5 33491.0 \n", "Luxembourg 0.4 38951.0 \n", "\n", " Household net financial wealth ... \\\n", "Country ... \n", "Brazil 6844.0 ... \n", "Mexico 9056.0 ... \n", "Russia 3412.0 ... \n", "Turkey 3251.0 ... \n", "Hungary 13277.0 ... \n", "Poland 10919.0 ... \n", "Chile 17733.0 ... \n", "Slovak Republic 8663.0 ... \n", "Czech Republic 17299.0 ... \n", "Estonia 7680.0 ... \n", "Greece 14579.0 ... \n", "Portugal 31245.0 ... \n", "Slovenia 18465.0 ... \n", "Spain 24774.0 ... \n", "Korea 29091.0 ... \n", "Italy 54987.0 ... \n", "Japan 86764.0 ... \n", "Israel 52933.0 ... \n", "New Zealand 28290.0 ... \n", "France 48741.0 ... \n", "Belgium 83876.0 ... \n", "Germany 50394.0 ... \n", "Finland 18761.0 ... \n", "Canada 67913.0 ... \n", "Netherlands 77961.0 ... \n", "Austria 49887.0 ... \n", "United Kingdom 60778.0 ... \n", "Sweden 60328.0 ... \n", "Iceland 43045.0 ... \n", "Australia 47657.0 ... \n", "Ireland 31580.0 ... \n", "Denmark 44488.0 ... \n", "United States 145769.0 ... \n", "Norway 8797.0 ... \n", "Switzerland 108823.0 ... \n", "Luxembourg 61765.0 ... \n", "\n", " Time devoted to leisure and personal care Voter turnout \\\n", "Country \n", "Brazil 14.97 79.0 \n", "Mexico 13.89 63.0 \n", "Russia 14.97 65.0 \n", "Turkey 13.42 88.0 \n", "Hungary 15.04 62.0 \n", "Poland 14.20 55.0 \n", "Chile 14.41 49.0 \n", "Slovak Republic 14.99 59.0 \n", "Czech Republic 14.98 59.0 \n", "Estonia 14.90 64.0 \n", "Greece 14.91 64.0 \n", "Portugal 14.95 58.0 \n", "Slovenia 14.62 52.0 \n", "Spain 16.06 69.0 \n", "Korea 14.63 76.0 \n", "Italy 14.98 75.0 \n", "Japan 14.93 53.0 \n", "Israel 14.48 68.0 \n", "New Zealand 14.87 77.0 \n", "France 15.33 80.0 \n", "Belgium 15.71 89.0 \n", "Germany 15.31 72.0 \n", "Finland 14.89 69.0 \n", "Canada 14.25 61.0 \n", "Netherlands 15.44 75.0 \n", "Austria 14.46 75.0 \n", "United Kingdom 14.83 66.0 \n", "Sweden 15.11 86.0 \n", "Iceland 14.61 81.0 \n", "Australia 14.41 93.0 \n", "Ireland 15.19 70.0 \n", "Denmark 16.06 88.0 \n", "United States 14.27 68.0 \n", "Norway 15.56 78.0 \n", "Switzerland 14.98 49.0 \n", "Luxembourg 15.12 91.0 \n", "\n", " Water quality Years in education \\\n", "Country \n", "Brazil 72.0 16.3 \n", "Mexico 67.0 14.4 \n", "Russia 56.0 16.0 \n", "Turkey 62.0 16.4 \n", "Hungary 77.0 17.6 \n", "Poland 79.0 18.4 \n", "Chile 73.0 16.5 \n", "Slovak Republic 81.0 16.3 \n", "Czech Republic 85.0 18.1 \n", "Estonia 79.0 17.5 \n", "Greece 69.0 18.6 \n", "Portugal 86.0 17.6 \n", "Slovenia 88.0 18.4 \n", "Spain 71.0 17.6 \n", "Korea 78.0 17.5 \n", "Italy 71.0 16.8 \n", "Japan 85.0 16.3 \n", "Israel 68.0 15.8 \n", "New Zealand 89.0 18.1 \n", "France 82.0 16.4 \n", "Belgium 87.0 18.9 \n", "Germany 95.0 18.2 \n", "Finland 94.0 19.7 \n", "Canada 91.0 17.2 \n", "Netherlands 92.0 18.7 \n", "Austria 94.0 17.0 \n", "United Kingdom 88.0 16.4 \n", "Sweden 95.0 19.3 \n", "Iceland 97.0 19.8 \n", "Australia 91.0 19.4 \n", "Ireland 80.0 17.6 \n", "Denmark 94.0 19.4 \n", "United States 85.0 17.2 \n", "Norway 94.0 17.9 \n", "Switzerland 96.0 17.3 \n", "Luxembourg 86.0 15.1 \n", "\n", " Subject Descriptor \\\n", "Country \n", "Brazil Gross domestic product per capita, current prices \n", "Mexico Gross domestic product per capita, current prices \n", "Russia Gross domestic product per capita, current prices \n", "Turkey Gross domestic product per capita, current prices \n", "Hungary Gross domestic product per capita, current prices \n", "Poland Gross domestic product per capita, current prices \n", "Chile Gross domestic product per capita, current prices \n", "Slovak Republic Gross domestic product per capita, current prices \n", "Czech Republic Gross domestic product per capita, current prices \n", "Estonia Gross domestic product per capita, current prices \n", "Greece Gross domestic product per capita, current prices \n", "Portugal Gross domestic product per capita, current prices \n", "Slovenia Gross domestic product per capita, current prices \n", "Spain Gross domestic product per capita, current prices \n", "Korea Gross domestic product per capita, current prices \n", "Italy Gross domestic product per capita, current prices \n", "Japan Gross domestic product per capita, current prices \n", "Israel Gross domestic product per capita, current prices \n", "New Zealand Gross domestic product per capita, current prices \n", "France Gross domestic product per capita, current prices \n", "Belgium Gross domestic product per capita, current prices \n", "Germany Gross domestic product per capita, current prices \n", "Finland Gross domestic product per capita, current prices \n", "Canada Gross domestic product per capita, current prices \n", "Netherlands Gross domestic product per capita, current prices \n", "Austria Gross domestic product per capita, current prices \n", "United Kingdom Gross domestic product per capita, current prices \n", "Sweden Gross domestic product per capita, current prices \n", "Iceland Gross domestic product per capita, current prices \n", "Australia Gross domestic product per capita, current prices \n", "Ireland Gross domestic product per capita, current prices \n", "Denmark Gross domestic product per capita, current prices \n", "United States Gross domestic product per capita, current prices \n", "Norway Gross domestic product per capita, current prices \n", "Switzerland Gross domestic product per capita, current prices \n", "Luxembourg Gross domestic product per capita, current prices \n", "\n", " Units Scale \\\n", "Country \n", "Brazil U.S. dollars Units \n", "Mexico U.S. dollars Units \n", "Russia U.S. dollars Units \n", "Turkey U.S. dollars Units \n", "Hungary U.S. dollars Units \n", "Poland U.S. dollars Units \n", "Chile U.S. dollars Units \n", "Slovak Republic U.S. dollars Units \n", "Czech Republic U.S. dollars Units \n", "Estonia U.S. dollars Units \n", "Greece U.S. dollars Units \n", "Portugal U.S. dollars Units \n", "Slovenia U.S. dollars Units \n", "Spain U.S. dollars Units \n", "Korea U.S. dollars Units \n", "Italy U.S. dollars Units \n", "Japan U.S. dollars Units \n", "Israel U.S. dollars Units \n", "New Zealand U.S. dollars Units \n", "France U.S. dollars Units \n", "Belgium U.S. dollars Units \n", "Germany U.S. dollars Units \n", "Finland U.S. dollars Units \n", "Canada U.S. dollars Units \n", "Netherlands U.S. dollars Units \n", "Austria U.S. dollars Units \n", "United Kingdom U.S. dollars Units \n", "Sweden U.S. dollars Units \n", "Iceland U.S. dollars Units \n", "Australia U.S. dollars Units \n", "Ireland U.S. dollars Units \n", "Denmark U.S. dollars Units \n", "United States U.S. dollars Units \n", "Norway U.S. dollars Units \n", "Switzerland U.S. dollars Units \n", "Luxembourg U.S. dollars Units \n", "\n", " Country/Series-specific Notes \\\n", "Country \n", "Brazil See notes for: Gross domestic product, curren... \n", "Mexico See notes for: Gross domestic product, curren... \n", "Russia See notes for: Gross domestic product, curren... \n", "Turkey See notes for: Gross domestic product, curren... \n", "Hungary See notes for: Gross domestic product, curren... \n", "Poland See notes for: Gross domestic product, curren... \n", "Chile See notes for: Gross domestic product, curren... \n", "Slovak Republic See notes for: Gross domestic product, curren... \n", "Czech Republic See notes for: Gross domestic product, curren... \n", "Estonia See notes for: Gross domestic product, curren... \n", "Greece See notes for: Gross domestic product, curren... \n", "Portugal See notes for: Gross domestic product, curren... \n", "Slovenia See notes for: Gross domestic product, curren... \n", "Spain See notes for: Gross domestic product, curren... \n", "Korea See notes for: Gross domestic product, curren... \n", "Italy See notes for: Gross domestic product, curren... \n", "Japan See notes for: Gross domestic product, curren... \n", "Israel See notes for: Gross domestic product, curren... \n", "New Zealand See notes for: Gross domestic product, curren... \n", "France See notes for: Gross domestic product, curren... \n", "Belgium See notes for: Gross domestic product, curren... \n", "Germany See notes for: Gross domestic product, curren... \n", "Finland See notes for: Gross domestic product, curren... \n", "Canada See notes for: Gross domestic product, curren... \n", "Netherlands See notes for: Gross domestic product, curren... \n", "Austria See notes for: Gross domestic product, curren... \n", "United Kingdom See notes for: Gross domestic product, curren... \n", "Sweden See notes for: Gross domestic product, curren... \n", "Iceland See notes for: Gross domestic product, curren... \n", "Australia See notes for: Gross domestic product, curren... \n", "Ireland See notes for: Gross domestic product, curren... \n", "Denmark See notes for: Gross domestic product, curren... \n", "United States See notes for: Gross domestic product, curren... \n", "Norway See notes for: Gross domestic product, curren... \n", "Switzerland See notes for: Gross domestic product, curren... \n", "Luxembourg See notes for: Gross domestic product, curren... \n", "\n", " GDP per capita Estimates Start After \n", "Country \n", "Brazil 8669.998 2014.0 \n", "Mexico 9009.280 2015.0 \n", "Russia 9054.914 2015.0 \n", "Turkey 9437.372 2013.0 \n", "Hungary 12239.894 2015.0 \n", "Poland 12495.334 2014.0 \n", "Chile 13340.905 2014.0 \n", "Slovak Republic 15991.736 2015.0 \n", "Czech Republic 17256.918 2015.0 \n", "Estonia 17288.083 2014.0 \n", "Greece 18064.288 2014.0 \n", "Portugal 19121.592 2014.0 \n", "Slovenia 20732.482 2015.0 \n", "Spain 25864.721 2014.0 \n", "Korea 27195.197 2014.0 \n", "Italy 29866.581 2015.0 \n", "Japan 32485.545 2015.0 \n", "Israel 35343.336 2015.0 \n", "New Zealand 37044.891 2015.0 \n", "France 37675.006 2015.0 \n", "Belgium 40106.632 2014.0 \n", "Germany 40996.511 2014.0 \n", "Finland 41973.988 2014.0 \n", "Canada 43331.961 2015.0 \n", "Netherlands 43603.115 2014.0 \n", "Austria 43724.031 2015.0 \n", "United Kingdom 43770.688 2015.0 \n", "Sweden 49866.266 2014.0 \n", "Iceland 50854.583 2014.0 \n", "Australia 50961.865 2014.0 \n", "Ireland 51350.744 2014.0 \n", "Denmark 52114.165 2015.0 \n", "United States 55805.204 2015.0 \n", "Norway 74822.106 2015.0 \n", "Switzerland 80675.308 2015.0 \n", "Luxembourg 101994.093 2014.0 \n", "\n", "[36 rows x 30 columns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita, left_index=True, right_index=True)\n", "full_country_stats.sort_values(by=\"GDP per capita\", inplace=True)\n", "full_country_stats" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GDP per capita 55805.204\n", "Life satisfaction 7.200\n", "Name: United States, dtype: float64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "full_country_stats[[\"GDP per capita\", 'Life satisfaction']].loc[\"United States\"]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "remove_indices = [0, 1, 6, 8, 33, 34, 35]\n", "keep_indices = list(set(range(36)) - set(remove_indices))\n", "\n", "sample_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[keep_indices]\n", "missing_data = full_country_stats[[\"GDP per capita\", 'Life satisfaction']].iloc[remove_indices]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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jBgxInJsuP7E5MmTGThwYGT7xo0befTRR7nyyiu5/vrreeKJJ1JikVDjb5aAfSD8dTtVFp5MNVlZWZG15YqLi2nWrFlk32OPPca8efMoLy+nvLycQw45pNJsxL179zJjxgyeffZZZs6cSY8ePXj44Yc5//zz+fOf/0yfPn2S/n5Mw2EJ2AdsCJp7rr76aj766CPee+89Jk6cGNl+1VVXMXXqVMaOHUt6enql8cb33HMPrVo569GWl5eTlZXFO++8E0nMN954I+eccw5LliyxBGzqxRKwD3z22WdAahSdSTVTp8afJR8MBrnppptYtWoVmZmZlJWVcckll9CzZ0/AWavv2muvPeB1J5xwAieccIIrMZvGwxKwDyxYsADACvEkWNXZY1X17NmTLl260LJly8iKxhUVFQwZMoRTTz2VAQMG1FgKc+TIkYwcOTKhcZvGwxKwD7z77rteh9Ag1Wb22HPPPcfixYvZvHkzRx55JOvWrePbb7/l8MMPB35Yat4YN1gC9glbysYbl19+OarKLbfcwo4dO+jYsSMPP/wwxx9/vNehmUbANysdisjVIvKRiBSIyGoRuc7rmJKhqKgIgMGDB3scSfXCiSh8g/C6664jNzeX3NxcFi5cCNRu5lheXp5vv6oPHz6cF198kbfeeotnnnmGAQMGeB2SaSR80QIOlbnsCvRT1X0i0gFYLyJzVPUrj8NzVXgIWnQRba/84x//4NZbb6V9+/Z06dKF559/vtL+m266ibKyMk488UQAnn/++chy7GF33303Tz/9NO3ataO0tJQjjjgiUlYy2qBBg9i7d2+lbZ9//jl79uxJ8Lsyxr98kYBDtSTGRm3aAZRRZakjERkNjAbo1KlT0uJzk99WfRg9enTM6bg33ngjmzdv5r333qNNmzYMHDiQww477IBatHfccQcjRoygsLCQa665ptpzvf322wds69GjR73jNyaV+KYLooqHgBdU9cvojao6TVVzVDWnXbt2HoWWWEcddRSnnHKKL1rA1dm0aRM5OTls27aNoqIibr75Zg499FAKCwsZP348hx56KOCMtx07dmwNZ4MVK1aQk5NzwKNnz55s2LCBnJwcZs6c6fbbMsYXfNECjiYid+OUvBzmdSzJkJuby6pVq7wOI6ZjjjmGgoICunTpwvvvv8/PfvYzRo0aRWlpaaVxsFOnTmXgwIHc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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n", "ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n", "plt.axis([0, 60000, 0, 10])\n", "position_text = {\n", " \"Hungary\": (5000, 1, '헝가리'),\n", " \"Korea\": (18000, 1.7, '대한민국'),\n", " \"France\": (29000, 2.4, '프랑스'),\n", " \"Australia\": (40000, 3.0, '호주'),\n", " \"United States\": (52000, 3.8, '미국'),\n", "}\n", "for country, pos_text in position_text.items():\n", " pos_data_x, pos_data_y = sample_data.loc[country]\n", " country = \"U.S.\" if country == \"United States\" else country\n", " plt.annotate(pos_text[2], xy=(pos_data_x, pos_data_y), xytext=pos_text[:2],\n", " arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n", " plt.plot(pos_data_x, pos_data_y, \"ro\")\n", "save_fig('money_happy_scatterplot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "sample_data.to_csv(os.path.join(\"datasets\", \"lifesat\", \"lifesat.csv\"))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GDP per capitaLife satisfaction
Country
Hungary12239.8944.9
Korea27195.1975.8
France37675.0066.5
Australia50961.8657.3
United States55805.2047.2
\n", "
" ], "text/plain": [ " GDP per capita Life satisfaction\n", "Country \n", "Hungary 12239.894 4.9\n", "Korea 27195.197 5.8\n", "France 37675.006 6.5\n", "Australia 50961.865 7.3\n", "United States 55805.204 7.2" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data.loc[list(position_text.keys())]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAADQCAYAAAA53LuNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJztnXl81NW5/99PdpIACUnYAgECkQQQtaDiVnCpO96qV1Fbl7bK9Vp7vVqr/Wlt7XWh7fXaTa3X1lbcWqv2arXYe1HADTcUpBpAFDc2IewJIds8vz/OTGafTJLZQp736/V9ZeZ8z/ecZyYznznf5zznOaKqGIZhGKknK90GGIZh9FdMgA3DMNKECbBhGEaaMAE2DMNIEybAhmEYacIE2DAMI02YABuGYaSJlAqwiOSKyLUi0iYi5wWUzxSRd0RkpYgsE5EZqbTLMAwjHeSkuL/LAAVe9xWISAnwF+B0VX1NRGYBT4vIOFXdm2L7DMMwUkZKR8Cqeo+q/hfQEVB8ErBGVV/z1lkCbAKOT6VthmEYqSbVI+BIVAMfhZR95C0PQkTmAnMBioqKptXW1ibfOsMw+i1vv/12g6pWJKv9TBBgIXhEDNBOhNG5qt4H3Acwffp0XbZsWfKtMwyj3yIinyaz/UyIglgPVIWUVXnLDcMw9lsyQYCfBqaKyIEAInIYUAssTKtVIdz15l1M+NUEBtw2gJMfPpmtTVvTbZJhGH2ctAuwqu4CzgF+LyJvAr8ATlXVnem1zM+NL9zIHUvv4L7Z9/HGpW+wbsc6rnv+upT03eHp4KZFNzHul+MouLWAcb8cxw8W/YB2T3tK+jcMI3mkxQesqrNCni8GDk2HLV2xbOMy5r0yj1e/+SpHjD4CgCsPu5JbX7o1Jf3/9NWfcvdbdzP/q/M5cNiBrPxiJRc/dTH52fncNPOmlNhgGEZyyIRJuIzmjqV38OUxX+4UX4CKwgoa9jakpP+lny9l9sTZzJ44G4CxJWM5Y+IZvLHhjZT0bxhG8jABjkFbRxvPfPAM846fF1Te3N7M4ILBcbdz+8u3c/vLt8es89zXnuOYMceElR9ddTT3vHUPqxtWU1teS/3WehZ9vIj/d/T/i7t/wzAyExPgGKzYvIK9bXu5/vnrueGFGzrL2zxtHDL8EAAWrF3A1f97NR71cPWMq7ni0CvC2rl8+uWcO/ncmH1VDqyMWH79Udezp2UPk+6eRHZWNu2edm485saI/RiG0bcwAY7Bmm1ryMvOY+XlKxGRzvLznzyfo0YfRbunnav+fhWLLlpEWWEZ0++bzpm1ZzJi4IigdoYMGMKQAUN6ZMNj7z/Ggysf5NGzH2VyxWRWbF7BVX+/inEl4/jWl77Vq9dnGEZ6MQGOwa59uygvLKemrKazrGFvAys2r+BXJ/+KNze8yaSKSYwePBqAM2vP5NkPnuWyaZcFtdMbF8T3Fn6Pa4+4lvOmuNxFBw47kE93fcq8V+aZABtGH8cEOAblheXsadmDRz1kiYvYm/fyPI4YdQRHjD6CJ+qfYPSg0Z31Rw0axYY9G8La6Y0LYm/bXrKzsoPKsiUbj3q6+3IMw8gwTIBjcNy442j3tHPbS7dx4UEX8kT9Ezy08iFe/earAKhq2DWChJX1xgUx+4DZ/OSVnzCuZByTh05m+abl3Pn6nVw09aIetWcYRuZgAhyDiqIKHjzzQb77f99l3ivzOGbMMbx4yYudLonKQZV8vvvzzvrrd69nbMnYhNrw61N+zU2Lb+KKBVewpWkLI4pHcNmXLuOHM3+Y0H4Mw0g9EmkU1xfIhGQ87Z52au+qZfHFiykvLGfafdN4/qLnGTlwZFrtMgwjMYjI26o6PVnt2wi4F+Rk5fDzk37O8Q8ej0c9XHX4VSa+KWDsL8YyKH8QWZJF6YBSFl+8ON0mGUaPMAHuJYGr1IzUsfRbSynOK063GYbRK9KejKevYNnQDMNINCbAcZDObGiJ4OYlNyM/lqBj+B3DE97PS5++xBl/PIPKOyuRHwsPrHggYr173rqnM7vbtPum8fKnL3erHxFh5gMzOfS3h/LIykcSYLlhpAdzQXRBurOhJYqJZRNZcsmSzufZkh29Mi4J0LQR08jPyQ8q/3jHx4hIxGiPxtZGpgydwkUHXcRF/xM5TO6x9x7jqr9fxT2n3tOZ5+KUR06h/tv1VA12efmn3DMl4rXPfe05Rg8ezavffJWRA0eyac8mTnjoBKYOm8qBww6M+XoMIxMxAe6CdGdDSxQ5WTkML45v1KuqfOe57zBy4Ej+cu5fyM3OBeCzXZ9x7PxjOXfyufzsKz8Lu+7UmlM5teZUAC556pKIbd/5+p1cctAlnasFf33qr/n7R3/nN2/9hnknuKRH713xXkz7fBOdIwaO4NQJp/L2prdNgI0+ibkgYuDLhnZW3VlB5T3JhlZ8e3HMo7u34d1l3Y51VN5ZybhfjuO8J85j3Y51UeuKCAsuWMDabWuZ88Qc2j3trN+9nmPnH8uMUTPCssPFS2tHK29vfJsTx58YVH5i9YksXb80rjaaWpvY07IHcCPuRZ8sYnLF5B7ZYxjpxkbAMYgnG1o89GYpciI4vPJwHvjqA9SW17KlaQu3vnQrR95/JO9f8T5lhWURrxlWPIxFFy9i5gMzOffxc3lvy3scPPxgHj7r4bCl0fHSsLeBDu1gWPGwsL6e//j5uNr4oukLznzsTMDtFnLZly7j0MqMzOVvGF1iAhyDrrKhAZzxxzN4+bOXOX7c8Txx7hMR2+nNUuRAfrDoB9z28m0x6yy+eDGzxs4KKjul5pSg5zNGzaD6l9XMf3c+1xxxTdS2Rg4cyZ/O/hPTfzudEcUjeOSsR8jJ6v1HJnS5tqpGXMIdierSat69/N1e22AYmYAJcAy6yoYGcPWMq7nsS5cx/935UdvpTTa0QP59xr/z9alfj1nHN5EVi+K8YiYPnczabWtj1mvY28A3nv4GJ084mfqt9Vz+7OX8/p9+35mYqLuUF5aTLdlsbtwcVL6laUvYqNgw+gMmwDHoKhsawLHjjmXJJ0titpMoF0R5YTnlheXxGR+Dfe37WN2wmmPHHhu1zvbm7Xzloa8wcuBInprzFBv2bGDmAzOZ+8xcfjv7t0F3BPGSl53HtJHTWLhuIedMPqezfOG6hZxdd3aPXoth9GVMgGPQVTa0eEmUC6KnXPt/1zL7gNlUDa5iS9MWbnnpFppam7j4oIsj1ldVTnv0NMoGlPHUeU+Rn5NPdWk1iy5axKz5s5wr5PhwV0hjayMfbv8QAI96+GzXZ6zYvIIhA4Z0jsyvmXENF/7PhRxWeRhHjT6Ke5fdy8Y9G7l8+uXJewMMI0MxAY5BV9nQ+grrd6/n/CfPp2FvAxVFFcwYNYPXL32dMSVjItYXEW459haOHH0kBTkFneU1ZTW8cNELUV0QyzYu49j5/lH1j5b8iB8t+REXH3QxD3z1AQDmTJnDtuZt3PrSrWxq3MSUoVNY8LUFUW0xjP2ZjMmGJiLfAy4EmoEBwJ9UNarjNBOyoflY8skS7nrzrqiTcIZh9E36RTY0ETkG+HdgqqpuE5EhwDsi8paqLox0TWNrI9ubt6f11t4wDKM3ZIQAA77MNqXANmAQbpHIF4GVRGQuMBeAEVD2szKGFQ2jrqKOSeWTmFQxyT2umMSwomE9mijqLic8eALvfvEuTa1NjLpzFI+f83jQqjnDMIxoZJIL4jTgYZwYDwW+qap/iVa/5sAavfy/L6d+az31DfWs2rqKXS27Os+XFpR2CrNPlCdVTGL0oNEpEWbDMPo+yXZBZIQAi8gBwAvAmaq6TEQmAM8Cl6jq65GuCfUBqyqbGjdRv9WJcaAwb93rTx1ZlFvUKch15X5hHlcyrscrvAzD2D/pLwJ8LTBNVc8PKJsHFKnqv0W6pjuTcA17G/yivLWeVQ3uceAOxvnZ+UwsnxgmzBOGTCAvO693L9AwjD5Jv5iEAz4ArhKREaq6SUQGAScB9yei8fLCco4Zc0zYSrNd+3axumF1kDC/sf4NHnvvMRT3w5STlcOEIRPChHli2UQG5A5IhHmGYfRTMkKAVfWvXrfD30WkGSgE/gbcm8x+BxcM5vBRh3P4qMODyve27WVNw5ogYX5/y/s8vfppOrQDcPkMxpWOCxLmuvI66irqGJQ/KJlmG0afZVtjC+t3NDOqdABlxfldlu/vZIQLoiekIw64pb2FD7d/GObKWLNtDa0drZ31Rg0aFTRa9j2OlnnMMPoDT6/YwPVPriQ3K4s2j4efnT2VMw6ujFqeCfQLH3BPyKSFGO2edj7e8XGYMK9qWMXetr2d9YYWDY0ozMOLh1tkxn5AOkdxmT6C3NbYwlE/XcS+Nk9nWUFuFs9eeTSn3/VKWPmr1x+XEa+jv/iA+zQ5WTnUlNVQU1bDP9X+U2e5Rz18vuvzIFGu31rPo/94NChkrqSgJKIwjx48useZx4zUEs8oLlki2VXf2xpbeH/jbkCZPHJwWoRt/Y5mcrOy2IdfaLNFWPH5zrDy3Kws1u9ozggBTjYmwEkkS7IYUzKGMSVjgnLyqiqbGzeHCfMzHzzD/cv9845FuUXUlteGCXN1abWFzGUQ2xpbuP7Jlexr83QKyXVPruSoCeWdIpKs2+yu+n56xQa+++cVtHv1LTdb+K9zDkr5Lf6o0gG0eTxBZU2tHWzf2xpW3ubxMKq0f0xwmwCnARFhxMARjBg4guOrjw865wuZCxTmxZ8s5qGVD3XWyc/O54CyA8KEuaasxkLm0kCk0V3gKC4egU5G3wDXPfFup/gCtHUo33siMX13ReiI/6bTJnHjU8H7/d258ANuOn0StzxbH/Tj1BPbMt0NEwkT4AwjWsjc7pbdYcL81sa3+PP7f+4MmcuW7M6QuUBhnlg+kcLcwnS8nH5BpNFd4CiuK4FOVt/rdzSTLVlAR9D57CxJ+i1+pBH/lMrBFOdn09jityc3K4spIwfz6vXH9Uo8M3kiLxYmwH2EQfmDoobMfbDtg7AJwL+u+WtQyNzYkrFhscwWMpcYyorz+dnZU7kuRAB8QtKVQCez7w71hF3T4dGk3uJHG/E/e+XRtHuCJ/1970NZcX6PfxCSeYeRbEyA+ziFuYUcPPxgDh5+cFB5a0drxJC559c9T0tHS2e9yoGVEYU5ETtv9CfOOLiSoyaURxzFdSWSPSHwdjta32XF+fznPx/ENSE+4P/859713RXRRvxNrR2d70O2CG0dHm46bVJS3TAmwEZayMvO6xTUQDo8HXy8Mzxk7v7l99PU1tRZr6KwIqIwjygeYSFzUYg1iosl0PEQKLivfNgQ8XY7Upu+ft/fuJvdza0MGpDL5JGDe/T64iXWiP+g0SXs2dfOj5+tJy8ni1v+Vs/AgpxeuQuSeYeRbHoVBywiJ6rq/yXQnrjJpDjg/QGPeli/e71fmLeuor7BPd65b2dnvcH5gyMKc9XgKguZSxKB/s3Wjg486ibTfMQTN5tqH+lfV2wIG/GfcXBl1Hjg3sb9RusvXrZuhVWroL7eHb7HGzdm6EIMEckGWlU1LfFQJsCpQVX5oumLiMK8pWlLZ73C3MLOpdiBKUCrS6sTspV9fyWSYIUyMD+Hhy89nINGl8TdRioWO0SKSnj38518/XdvsKelPW77e9NfIKqwcWNkoW1o8NcrKoJJk6CuDh58ME0LMUTkAty2QJ6AshuAn6qqbxrT7kX3c0SE4cXDGV48nOPGHRd0btvebf5Vf15hXvLJEh5e+XBnnbzsPH/IXIAw1wypIT8ns/1zmUAk/2YoXd1ur9/RjIZMfqlHk+4jjeSSSfaEZFlxPh4PfPxxZKHdvdtfv7TUCe2ZZzqxnTTJHaNGgc/L9uCDvTYrJrGGJg8BTwF7A8puAX4RUNY31zEbCaGssIyjq47m6Kqjg8p3t+xmdcPqoLzMb298m8fffzwoZG78kPFhwlxbXmshcwFEEqycLMjOyiIvO74JvaK8bFo6gr+qLR1KUV7qb14TOSHZ3g4ffRQssKtWuaO52V9v2DAnrBdeGCy0Q4f6hTZdxBLgSKbZiNfokkH5gzis8jAOqzwsqLy5rZk129aEJcx/9oNnafe4W1JBGFMyJkyY68rrGFyQ3MmjTCSaYHVnQq+ptYOC3KwwF0RTa0eMq5JHdyckW1rggw+Chba+3pW1tfnrjR7thHXmTL/Q1tXBkAzeNjKWAEcb3eaJSHsX1xpGGANyB8QMmQsV5hfWvRAUMjdy4MiIwlxRVJHql9JrurNqK1aYWTxEu71PZ5RAJPdEUxOsXh0utB99BL6bABGornbievrpfqGtrYWBA9PwQnpJ1Ek4EfEAxaq6N6TMd4EAapNwRjJ4esUGrntyOZq1lb36Kccf2Aq5GzpFOjBkrrywPDwyo7yOkQNHZmTIXDpWbfU2SiCR7NwZ7DLwCe2nn/rr5OTAAQcEuwzq6lzZgBT+bqQtHWUMAf4y0IwbAS81ATYSTVez9qrK57s/j7jN1I59OzqvGZQ/KKIwjykZk7aQuXRFJPj6TmWuhK1bwyfB6uth0yZ/nYICN3oNFdoJEyA3N+kmdkk601Eq4W4IBd5R1b3eMDTDSDhdrWwSEaoGV1E1uIqTJpzUWUdV2dK0JUyUF6xdwB9W/KGzXmFuIbXltWHCPH7I+KSHzKVz1VZvlvtGQxU2bIgccbBtm79ecbET1xNPDBbasWMhux8rSVeTcL/0+nsNI2X0NFRJRBhWPIxhxcM4dtyxQee2N2/vHDH7hPmlT1/ikX880lnHFzIXKswHlB2QsJC5vrpqy+OBTz6JLLR79vjrDRnixPWss4KFNjC0y/ATywXxh4gnYK6qttlCDCOZpMpnuadlT+fGrIGZ5tbtWNcZMpclWUwYMiFMmGvLaynKK+p2n5nkjw2lrc1NeoUK7erVwaFdw4cHC6zvcUXF/iW0GbslkVeA21Q1Lc40E+D9n3Tmd21ua+7MMhcozGu3r+0MmQMYWzI2TJjrKuooKYi9qivduWv37XNhXKFCGxraVVUVLrR1dW4RQ38gkwVYgN+r6jcSa1J8mADHR7q/6PsbbR1tnVnmAvf+W92wmn3t+zrrjSgeEZaXeVLFpJSHzDU2utFrqNAGhnZlZflDuwKFtrbW+W77MxkhwCIiqqoish0YpqptXV7UE2NEvgt8AxdlIcCXA6MwAukrApxOAeyrSaqTQbL/Dx2eDj7Z+UnQaNn3uLG1sbNe2YCyiMLc25C5HTv8q8AChTYwtCs3F2pqwoX2gANcNIIRTtoFWETKgftV9Z+8YWgFqtoa86KeGCLyYyAf+IGqtotICbA7MBdFIH1BgNMpgOkMd8o00vl/UFXW714fJszvb3k/LGTOJ8iBwhwYMqfqD+0KFdpIoV2hQjt+fGaEdvUl0haGJiLHqeoi4FCgMeRcPsE5IgDGqepnPTHCK7YnAc8Ar4rIPuAnqvpcT9rLBNKdpb8vJ6lOJD39PyRqxCwijB48mtGDR3Pi+BM7y30hc6HC/NyHz/GH5X+A3ZWwdRK52w9i0J4ZZDVMoXHDaJp3+/NkDBzohPWkk4KFdsyY/h3a1ZeIFYb2rIicDJwOLIhwXnDi7GNjL+yYBkwGfqOqh4vIIcAiEZmuqh91digyF5gLUFVV1Yvukk+iBLCnQtBXw53ioTvvSU/+D6kYMYsI5QOGUeUZRuMXs2ish6ZV0FgPjauUxj3OHdEG7C7eTdbQVbTULIGKeqioJ2foh4weV0TV0ElUlddRVTGJqoo6RpYdQHa2+RP6CrEEOAf4CVABXBvhvKrq2wmyYyjwiarO9za8XEReAE4G7g7o8D7gPnAuiAT1nRQSIYC9EYJkbIOTCXT3Penu/yEZdy6+0K7Q+NnVq100go8RI9wI9pKLJch9UFExCJHDaWyd3Bky5xsxL9+8nCdXPYnH66nLkizGl47vzMvsS5hfW15LcV4/n1HLQLpaiPEocBDwTRGZQvLST24BdoeUeQjdzrUP0VsBTIQQ9HYbnHhsTOUEY0/ek+7+H3pz57JvH6xZE57nYO3a4NCuMWOcuB53XLCftqSLfOTFecVMHzmd6SODXZL72vf5Q+YCEuY/t/Y52jz+jscMHhMmzHXldZQO6CcxZRlIV0uRHwUuAD4EepeuPjYvA9UicrSqviIiE4HjgO8nsc+kEyiARXnZNLV2sK2xJS6xSpQLI9ry096KZzomtnr6nnTnhyieEXNjY+SIg3XrgkO7xo934nrGGX6hnTgx8aFdBTkFTB02lanDpgbb3dHGRzs+ChPmJZ8sCQuZCxXmSRWTqCisyMhkRvsTXS18bwQ+BRao6k9FZE4yjFDVVhE5FfidiGThRr8Xq+q6ZPSXSsqK86NuohiLZPpweyue6Zpg7M17Em8ehMARc1ZLHo1bCjmhqpbbfpjfKbSfBUw15+a6MK5DDoELLvALbU1N+kO7crNzqS2vpba8Fur85R2eDj7d9WmYMM9/dz57Wv3rissGlEUU5sqBlSbMCSKezCNLgFOAfyTTEFVdjpuM26/oqVgly4ebCPFMV4RFMt4TVdiyJTS0q5Id9SPZ8oUTmbtxKRBra+GYY4IjDqqr+15oV3ZWNtWl1VSXVnP6Aad3lqsqG/Zs8AuzNzfzE6ueYPs72zvrDcwbGJSP2RcyN7ZkrG3M2k3i2RHjLSJPwtlPYBz0RqyS4cNNhHimM8Kip++JKqxfHzmGdrtfWxg0yInraadKWGhX1n6uLSLCqEGjGDVoVFjI3Na9W8OE+X8//F8eWPFAZ72CnAJqy2vDhHl86Xhys/vYr1SKiCXAp3pdAx8CofenbcDVyTNr/6G3YpXoFIKJEM90R1jEek86OlzWrkhC2xgQzV5W5oT1nHOCR7QjR+5fyWQSgYgwtGgoQ4uGMmvsrKBzO/ftDMvL/Opnr/LoPx7trJOblUtNWU2YMB9QdgAFOf07ZC7epcjFqtqYzJVw3aUvrITzkWnZrxJlTzqXWbe1wYcfhod2rVkTHNo1cmR4sm9f1i4jeTS2NrKmYU3YsuyPdnwUFDJXXVodJsyZFDKXCUuR84EbVfWHIjJTVV9MljHdoS8JMGReUpxMsycazc3+DRlDQ7vaAzJVjx0bLrTxhHYZqWVf+z7WblsbJswfbPsgKGSuanBVxN1MUh0ylwkCPBjYnq68v9HoawJsxGbPHv+GjIFCu26d89+C88FOmBCeg3biRCjqflpeI4No62hj3Y51YcK8umE1ze3+RMTDi4dHFOahRUOTEpmRFgEWkR8GPC3AxePeHFLtPlXdLCIFwCJVPTJZRkbCBDj5JGOUvH175F0VPv/cXyc314lqqNDW1EB+5g7WjSTgUQ+f7vw0TJjrt9YHhcwNGTAkTJQnVUxi1KBRvRLmdAnwM3Fce5WqrhORIlzWspSOkE2Ak0tvYoVV4YsvIgvtF1/46w0YEJzk2ye01dVuV1zDiIaqsnHPxjBRrt9az7Zm/2Z0xXnFEYV5bMlYsrO6lqy0uyC6bMAEeL8j3lSWqm7kGklod/gzLTJoUOTta6qq9v/QLiP1bG3aGibMqxpWsXGPP19YQU4BE8smhgnzhCETgkLm0rkrspFm0jVRFhorrB7w7Czm4cfa2NeQ3ym2q1cHh3aVlzthnTMnWGhHjLDQLiN1VBRVMLNoJjPHzgwq94XMBQrza+tf44/v/bGzTk5WDjVDajqFOdnEygf8ZoRiVdXDk2iP4SXVuRa2Nbbw8RfNtO4oZM3qIja9OI7mLUW0NQykbXsRdGTz7966lZVOYL/5zWAXgoV2GZlMSUEJR4w+giNGHxFU3tTaxOqG1UHC/I8t/+B/Vv9P0m2KtSuyB5d71xcbkgfcG+pqMBdE4kn2bhbNzS5e1ucyeH5pM++820HrjkLw+H0CuSV7yS9vIrd8D18/uZQLTiqlrg4GD+61CYaR8bS0t1CQW5BWF8SDvkUX3njge5NliOEnUbkW9uwJT41YXw8ff+wP7crOVrJLOsge0sigAzaTW7aH4mF7eem26RQVZbN+Ry6jSiszOlbYMJJBfk7yP/NdpaOMiohsBYbgckJkdHL0vka3k4hvizwRtn69v05engvtmj4dLrrI7zZoLtjFNx96gz0t/lUNA/Nz2NHaTNWwEhNew0giXY2ADxSRQBdEICcBlmEjCUTKtfDTs6bSuiefRW+GC+2WLf5rCwudsM6aFRx5EC20a1vj/rt1kWFkOl1lQ3srpKxzpKuq7yTFon6Ox+NCu/I2V/K1wmEsX9nBho9zueSuLHbu9NcbPNiJ6+zZwRNh3Q3tSndiHcPoz0QVYFW1CM0k0tHhltmGug5WrYKmJl+tHCoqcpg0Cc4/Pzi0a/jwxIV2JXvrIsMwImNxwEmmtdUljgkV2jVroKXFX6+y0gnrpZcGj2jLy1NjZ6LTXhqG0TUmwAli797g0C7f37Vr3WgX3Ih17Fgnried5Bfa2loL7TKM/ogJcDfZvTtyaNcnnwSGdvmzdp19tl9oJ050k2SGYRhgAhyVbdvCow3q62HDBn+dvDw3ej3sMLjkEr/boKbGnTMMw4hFRAEWkdfoZmxvqtNRJgJV2Lw5stBu3eqvV1TkhPW444JDu8aNs6xdhmH0nGjysV+tePOFdkUS2l27/PVKSpy4nnFGsNCOHg333AO/+AU8/jjMnAkPPWTiaxhG74goIao6P9ZFIjIL+KGqHpdog0RkMvAy8CtVvbk717a3u2W2oUK7apWbJPMxdKgT1wsuCBbaaKFdN94IjzwCv/+9i0r453+G666DP/yhVy+129x+u7Pl29+Gu+5Kbd+GYSSemGM4ESnBrXjLAp5XVd+N+XqgOtHGePu7G/hjV3Wbm91oNHRDxtaA7UJHjXLietllwUJbVha/TcuWwbx58OqrcIQ3idKVV8Ktt3bvtfWW11+H3/4Wpk5Nbb+GYSSPWOko64AXAA/QARSKyEneFXBbgYQmHxSRLGA+cANwYlf16+vh3HPdiHXcOCeuJ5/sF9raWpcIvLfccQd8+ct+8QWXdrGhofdtx8uuXfC1r8H998N//Efq+jUMI7nEWu32n8CfVHWUqo7BjUx/DaCqu4ACEUnkXP+twEJVXRqtgojMFZFlIrKsvHwPy5e7VWP1NUUmAAAU10lEQVQffQTPPAM/+5mLRjjssMSIb1uba/ess4LLm5u7F7d7++1QXBz7ePnl6NfPnevcHscl3OFjGEY6iZUPeDtwkKp+7n0+GNgMFKqqisheYJSqbu+1ESJnA2eq6te9z28GiOUDTkU+4LfecmJeUOBie320tcEhhzi3wIIFcPXVbqLv6qvhiivC29m+3R2xqKx0e6SF8tvfwr33wmuvudC2WbNgyhTzARtGKkjnlkSNQOA4chDQon7FbiM8Q1pPOQWoE5HXvc9HgZuQU9VzEtRHt1mzxoneypXBk3Pnnw9HHeUm/a66ChYtcn7l6dPhzDPdFjyBDBnijp70f8MNbnRsccWGsf8RywXxN+BuEZnqjUz4b2BBwHkPLmNar1HVS1V1mqrOUNUZwO+A36VTfMH5XsvL3cKKCRPcUVICK1Y4l8Cbbzp/8+jRboXbmWfCs8+Gt9NTF8Rrrzlf85QpLuQtJwdefNGFxOXkBOeSMAyj7xFrBPx94BFgBW5RxiLgqoDzSoIEOFMpL3e7Sng8/hSP8+a5CbkjjoAnnnDi62PUqOCVcj4uv9xNGMaiMsJ2b1/9qhtVB/KNb7gfhBtusFGxYfR1YqWj3AWc7vX9ZqnqjpAqSRPf7sb/JovjjnNuhttugwsvdIL70EMuJA38uR8CiRRH3FMXREmJOwIpKnJtTZnS/fYMw8gsYub8FZEc4KQI4ouqlqrqxqRZlgFUVMCDD8LvfudcDQsXOhdATY07X1npVtj5WL8eRo5Mj62GYfQ9okZBQGfkw/ZU73gcD5mwK3J7u4s3XrzYuSumTYPnnzcRNoz9hbREQYiIL/K10D2VM3Euh9eBGZGuUdW/JMXCDCYnB37+czj+eOcnvuoqE9+uGDvWxWhnZUFpqfvxMoz+SsQRsIh8HKGuAv8GPA6sDjl3oKqmNDVNJoyAje4zdiy8956L/DB6wV13uexQGzb4s0NVJHRxqkHyR8ARfcCqOi7CUQ08B3yiqocEHriY4P2au+5yYWgDBrglz4HpKg0jpdx4o1sjf9998MYbbnPB665LXf/33OPW/xcUOL9brGWcRkzi2nhTHL/HbUM/VETuDDyAjPMRJ5J0ft5vvtlFVgQew4cnvp+XXnJpOCsrXR8PPBC5Xm+/eyJuwHbooS7DnNFNfNmh/vhHF6YzdarLDvW3v6Wm/8cec762G26A5cvhyCPhlFPgs89S0/9+RrxugyuB4aq6T0R+RXAMcBH7Wf7gQDIhG9rEibBkif95dhc/d0uXOnHMD9lj8+OP/fvShdLY6ELbLrrIHZHwfffuuQeOPtr9PeUUlxipqsrViRYe99xzLmb61Vedn3zTJjjhBKcfBx4Y+/UYAaQ7O9Sdd7qEK5dd5p7/+tfw97/Db37jvihG91DVmAcwB5f9bCJuxPya91jqPf9lYFVX7ST6mDZtmqaCOXNUZ84MLnv0UVWRlHSvP/qR6uTJ8df3eFS/9CXV009XbW31l3/6qeqYMarf+17XbRQVqf7hD+Hlhx2meumlwWUTJqh+//vx2xfItddG7seIQmuramGh6i9/GVx+//2qJSXxt3Pbbe6fHOt46aXw61paVLOzVf/85+DyK65Q/fKXu/96+gDAMk2ijkV0QYjIchF5UUSeA+4HTlPVNbhRby1wF/Alb/X3gdGR2unrZEo2tHXrnGtg3Dg47zz3PBoiLkHQ2rUwZ44LlVu/Ho49FmbM6PkgpbUV3n4bTgxJFHriiW7EHQ9NTW5lIbgR96JFMHlyz+zpl6xY4XYWuP764A/Pv/6ru00C98+fONEFq99zT+R2Lr/ctRXrCF2CCW6U3dEBw4YFlw8b5vb2MrpNNBfEfwNDgbNxoWjfBN70nmtW1UdE5HciUgMUABHyePV9Aj/vN9zgL/dlQ4uXni5FBjj8cOePra2FLVuc6+PII+H996Mnlh82zInbzJmu3/feg4MPhocf7tp9EY1Y373nn4+vjS++cPkywLV12WXOF2zESbqzQ/kIXe6pGnkJqNEl0bYk8vl0/0NEzgEeEJENwO34fb+CC0cTurmBZ1+hq887uImrl192scBPPBG5nd583k85Jfj5jBlQXQ3z58M110S/buRI+NOf3HdwxAg34ZWIPex6892rroZ33+29Df2WwOxQPhoa3EjhV78Kzg4F/uxQPn+tj9tvd0csnnsOjjkmuKy83P2Ch452t2wJ/2U24qLLKAhVfRw4HbgOGAP4xmqFuHSUuSQuLWVG0VU2NHA5gB98MHY7vXVBBFJc7G7b166NXa+hwSXuOflkyM11o3CPJ74+ImHfvQwgMDuUj8DsUBs3xp8dqicuiLw8N7u7cGFw+cKF7rbM6DZxjYlUdbGI3IJbuOHxlvXi69w36CobGjjfamCEQiR644IIZd8+WL3a9RuN7dvhK19xo+CnnvLH6s+d6xK89+RuMfC7d05AktCFC+Hss7vfntED0p0dCtxt14UXup0KjjrK7RawcaP7kBvdJu6bUlX9WTINyUS6+rzHS28+79deC7NnuzCvLVvgllvcZNbFF0eurwqnneZcgE895ULRqqudW3DWLPjBD9zrCaWxET780D32eFxY54oVzm5fiJl999KMLzvUd7/rRgLHHNN1dqhIMYe9Yc4c2LbNTUZs2uTiDhcsgDFjEttPfyGZIRbJPFIVhvb446pVVaoDBqieeKJqfX14ncWLVc8+Ozn9z5mjOmKEam6u6siRqmedpfr++7GvWbhQtakpvHzVKtU1ayJfs3ixqpPv4OPii4Pr3X23C2fLy3Phbi++2IMXZSSHtjbV8eNVP/tMde9e1bo61Q0b0m1VZjNmjOqBB6oedJDqrFlhp0lyGFrMbGiZTCblgliyxC1VjjYJZxgp45ln3AjZlx3qO99Jt0WZTRfJSdKSC8IwjAwnWnKS2bPhgw+cP8nEN+MxAe4lJ5zgJqUWLHCTzq+9lm6LjP2edCYnmTfPBW8PGuR80rNnuxFkouknyUlSmkJyfyTeRQiGkRDSnZxkyRK44gonWKrwwx+6UUh9ffSZZktOEp1kOpiTeaRqEs4wMop0JycJZc8e1aws1b/+NfL5Pp6chHTkgjAMIwPJlOQkgfgC5UtLI5+35CQxMReEYfQVMiE5SShXXeUSjQSmxwzFkpNEJWMEWET+BbgCt7tGHnCvqkZJ52QY/ZBMSE4SyDXXwCuvuKMrIbXkJBHJCBeEiGQDNcBR6mLuTgH+S0Ti/Bk2jH5AJiUnufpqtyvHokVOyLrCkpNEJCNGwKraAVwbULQNaCVkqyMRmQvMBajyzXIaRn8hU5KTXHWVG80uWeLypHaFJSeJSkYIcAR+ATymqkEbTanqfcB94FbCpcMww0gbmZCc5Nvfdn0+9ZSbePONQH0j51DUkpPEJJkhFj05gFuBZ4C8WPUsDM3ol6Q7OUmkhCHg9s6KRh9OTkJ/ygUhIncA44E5qtoaq24m5YIwjIzCkpMkjGTngsgIF4SIZAH3AKXAOaranmaTDMMwkk5GCDBwKvAvwDLgFfE75X+gqrbY1zDi5YQTXGhVU5NLTvL447FjdI20khECrKrP4t9rzjCMnmLJSfoUGREHbBiG0R8xATYMw0gTJsCGYRhpwgTYMAwjTWTEJJxhGEba6ehw+TZ27oQdO9zfJGMCbBjG/kNLi188d+zo3uNdu1JurgmwYRiZg6rLA9FTEW1ujt1+YaHLIFda6o5Ro9wWRKWlweW+xzNnJvXlmgAbhpFYOjqCb+O7K6IdHdHbFnG7fwSKZW1tuHBGelxSEr4vXZoxATYMI5x9+7ovnL7Hvm1+opGbGyyQZWUwfnx8IjpoUM930chATIANY39EFXbv7vlItKUldvtFRcECOWYMHHRQfCJaWNizHMD7ISbAhpGptLU5UezJbfzOnbF3nBAJF8bKyq7Fs7TUuQDy8lL3PuzHmAAbRrJQdZNCPfWFNjbGbj8vzy+OpaUwdChMnBifiA4c6N9Vw0gbJsCGEQuPx93K91REW2OmtXZCGCiQ1dXx3caXlsKAAal5D4ykYQJs7P+0tvbcF7prlxvJRiM72z/D7hPI0aPjn5VPxM7ARp/F/vtG5qMKe/f2fFZ+797Y7RcUBAvjiBEwaVLXI9CSEjeCtQklo4eYABupoaPDfyvfXRHdudNNSMVi0KBggaypie82vqTECbBhpAETYCN+erPMc/fu2LfyOTnhAjluXPyz8vtRbKjRfzAB7k9k2jLPwMdFRXYrb/Q7TID7GqlY5hkojHV10W/dM3yZp2FkOibA6SAVyzx9wlhWBhMmdD0CLS11flSLDTWMlGEC3BNUnRD2VETjXebpE8gxY+Dgg+MT0QED7FbeMPoIGSPAIjIT+DnOplbgSlV9PWkdtrW5GM+ezsona5lnSYkbxRqGsd+TEQIsIiXAX4DTVfU1EZkFPC0i41Q1ehCnLza0u+K5Y0fXyzzz84OFcdgwW+ZpGEZCyQgBBk4C1qjqawCqukRENgHHA89EvOKdd9yteiwGDgwWxvHj47uNLymxZZ6GYSSdTBHgauCjkLKPvOWdiMhcYK73aYvAezFb3bPHHZ99lig7E0U50JBuI3qI2Z4ezPb0MDGZjWeKAAsQGh/VTsiuzap6H3AfgIgsU9XpqTEvsZjt6cFsTw993fZktp8pjsr1QFVIWZW33DAMY78kUwT4aWCqiBwIICKHAbXAwrRaZRiGkUQywgWhqrtE5Bzg9yKiOPfDqaq6M8Zl96XGuqRgtqcHsz09mO1REI2VIMUwDMNIGpnigjAMw+h3mAAbhmGkCRNgwzCMNNHnBFhEZorIOyKyUkSWiciMNNiQKyLXikibiJwXj23JONdD2/9FRN71trVSRK7wlk8RkVe9Zf8QkdMDrkn4uR7afovX9je978m/9hXbA9qdLCLbReRm7/O+8Jn5h4i8JSKve49FfcV2b5vfFZH3vK9hmYgUZoztqtpnDqAE2AYc4X0+C/gCKEyxHVcA3wVeBs7ryrZknOuh3dnAHUCx93kl0Oz9+yEwx1teB2wHRuF+pBN6rhfv+zVArvdxBdAIjO8Ltgd8RpYAdwM394XPjLeNT4CseL+LGWb7j4GfADkBdg/JFNvTIqS9eDPnAEtDylYAs9NkzxL8AhzVtmScS5D9BcAuYCawAW9UjPfcU8B3gMMTfS5Bth8KbO4rtuNE/WngSJz43txXPjPAbtxgYznwZ+DgvmA7ThRfB24E3gBeBE7JJNszIg64G8SVMyJNxLKtMAnnEsEvgMeAkcA69X5qQvppSMK5HiMiNcACoAw4tw/ZfiuwUFWXisiJ3rK+8pkZpqrNIpIFnA88D/y6D9g+DZgM/EZVDxeRQ4BFuLvAjLC9r/mA48oZkSZi2ZaMc70zVuRWnOvhyr5ku6quVdUaXKa8B3Ef8Iy2XUTOBqpU9a7QU5luO4CqNnv/elT1EeBt76lMt30o8Imqzvfavxx4IZNszwTh6g6ZnDMilm3JONdjROQO3MjgbFVt7Uu2+/B+mV7D+bUz3fZTgDrfJBZwqfe4rQ/YHolsnF84023fgnOfBOIhkz4zPfULpeMABuNuDw/0Pj8M2AGUpMmeJfh9wFFtS8a5HtqbBdyLczvkBJRn426XTvE+r8ZNOtUk41wPbT8Q53Lwrd6s9H64j8p02yO8lpu9R1/4zBwKTAt4firOPz6mD9ieB2wCjvY+n+ht/6BMsT3lopWAD++xwFvAm8BSvLOOabJlCV4B7sq2ZJzrgb2nA+pt7/WA4wRgKm6i5S3vMTvguoSf64Htg3DRA297bX4H+Eay7Euk7RFey83AzX3kM1MHPIebgHsd53+f3Bds97Z3iPczs9z797RMst1yQRiGYaSJvuYDNgzD2G8wATYMw0gTJsCGYRhpwgTYMAwjTZgAG4ZhpAkTYKPPISIqIgfHWXest355su0yjO5iAmykHBEZ7U3XpyJSEHIuW0SuF5G1IrJbRJaIyBEx2vq6t53Q495u2nSBiCwWkS0issHb/0MiMt57/hIR6RCRzd5jg4g8571OAtqZ5e1/s4hsFJEPReQ+ERnbvXfJ6A+YABspRUSOwS0hfidKlZuAbwNzcSuXngGeF5HaGM1+BgwIOa4MqTNIREoCxdJrj4jII7iUhfcAlapaCRztbffUgOpbVXW4qg4HJuBWFf4YeFJEskP6G6uqI3EJYZqAxSJSEuM1GP0QE2Aj1azGCeujUc5/C/gPVV2sqptU9b9wq4suiNGmquq+kKM9pM5HuKWhw0LKLwW+Ahyuqo+rapu3wS9U9UacyEbqsFlVn8alwzwWuCRKvV3A9d5+j4/xGox+iAmwkVJUdauqNsWokgu0hpTt85bHxDuaHSAiQ0SkWkSOxmWpAqhQVVHVzSGXXQbcq6qbotjbFqtPVd0IPAKcF6NanveI9bqNfogJsJFpPArcKCIHi0iRiHwDt7vA4zGuGSMiist0tRdYB/wV+Df8AhyNybg8Ab3hfdzOHGF4fcgPAstwuWgNo5O+lpDd2P/5fzghXYTLMLUKOFNVo/mM/4TbrQLvda2B7oc4Jr8EKAqofxDwv96nA4CfqurtcbQR6vL4xOtu3gw8C3xLXepPw+jEBNjIKFS1BbgWuFZEcuNwAbTj9oaLRhMu/WZLlPOrcKNgX3vvAsMBROQVnOugKw4GVoaUjVXVfXFca/RjzAVhZCxdiW8g3giHm0VktYjsE5EWEVkHfB+4RlX3RLn0IWCuiAzpiY1eF8P5uFSZhtEtTICNjERE/k9Ero1y+hhgbUjZAvzRCENw+YO/ikum/qqI5Edp6y5clMVSETneu++Zz3UxIoZ9A0Xk67ic0Leq6uKuX5VhBGMuCCNTySPK51NVXwl8LiIDgCNwOx+8HnBqpYj8O277nFrg3QhttYvI6cC/AvOAcSLSigtZexKYH1C9QkQ245La7wVeAc5S1bd69AqNfo8lZDcyEhFZgpuIuzNKlZZAF4WILMWFq30fF5XgwS2W+CFuW51a88kamYa5IIxM5sfAnijH9SF1T8NtA/MQbv+2XcDTuP3LjjbxNTIRGwEbhmGkCRsBG4ZhpAkTYMMwjDRhAmwYhpEmTIANwzDShAmwYRhGmjABNgzDSBMmwIZhGGni/wNcet556GtuRAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n", "ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n", "plt.axis([0, 60000, 0, 10])\n", "X=np.linspace(0, 60000, 1000)\n", "plt.plot(X, 2*X/100000, \"r\")\n", "plt.text(40000, 2.7, r\"$\\theta_0 = 0$\", fontsize=14, color=\"r\")\n", "plt.text(40000, 1.8, r\"$\\theta_1 = 2 \\times 10^{-5}$\", fontsize=14, color=\"r\")\n", "plt.plot(X, 8 - 5*X/100000, \"g\")\n", "plt.text(5000, 9.1, r\"$\\theta_0 = 8$\", fontsize=14, color=\"g\")\n", "plt.text(5000, 8.2, r\"$\\theta_1 = -5 \\times 10^{-5}$\", fontsize=14, color=\"g\")\n", "plt.plot(X, 4 + 5*X/100000, \"b\")\n", "plt.text(5000, 3.5, r\"$\\theta_0 = 4$\", fontsize=14, color=\"b\")\n", "plt.text(5000, 2.6, r\"$\\theta_1 = 5 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n", "save_fig('tweaking_model_params_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(4.853052800266436, 4.911544589158483e-05)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn import linear_model\n", "lin1 = linear_model.LinearRegression()\n", "Xsample = np.c_[sample_data[\"GDP per capita\"]]\n", "ysample = np.c_[sample_data[\"Life satisfaction\"]]\n", "lin1.fit(Xsample, ysample)\n", "t0, t1 = lin1.intercept_[0], lin1.coef_[0][0]\n", "t0, t1" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3))\n", "ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n", "plt.axis([0, 60000, 0, 10])\n", "X=np.linspace(0, 60000, 1000)\n", "plt.plot(X, t0 + t1*X, \"b\")\n", "plt.text(5000, 3.1, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n", "plt.text(5000, 2.2, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n", "save_fig('best_fit_model_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "22587.49\n" ] }, { "data": { "text/plain": [ "5.96244744318815" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cyprus_gdp_per_capita = gdp_per_capita.loc[\"Cyprus\"][\"GDP per capita\"]\n", "print(cyprus_gdp_per_capita)\n", "cyprus_predicted_life_satisfaction = lin1.predict(cyprus_gdp_per_capita.reshape(-1,1))[0][0]\n", "cyprus_predicted_life_satisfaction" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAADQCAYAAAA53LuNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmYFOW1wOHfYWBYRUQQBBlZRECioo6iRsVdUTExRHFJoiaKRk00ileDxhCjEo0hmrih0UBUEpeb6xZNggpERYLjhsoSFiW4AyrIMDAMc+4fp9peprunZ+mu6pnzPk89TVdVV53uaU5/deqrr0RVcc45V3htwg7AOedaK0/AzjkXEk/AzjkXEk/AzjkXEk/AzjkXEk/AzjkXEk/AzjkXkoImYBFpJyITRGSLiJyaMH+UiLwmIgtEpEJE9i9kXM45F4a2Bd7fuYAC82IzRKQb8FfgBFV9WUQOBR4XkQGqurHA8TnnXMEUtAWsqneo6m+ArQmzjwGWqOrLwTqzgY+AIwoZm3POFVqhW8DpDASWp8xbHsxPIiLjgfEAnTt33mfo0KH5j84512q9+uqra1S1Z762H4UELCS3iAFqSNM6V9W7gbsBysvLtaKiIv/ROedaLRFZmc/tR6EXxPtAWcq8smC+c861WFFIwI8De4jI7gAish8wFJgZalTOOZdnoZcgVHWdiJwM3CciipUfjlPVL0IOzTnn8iqUBKyqh6Y8nwXsG0YszjkXliiUIJxzrlXyBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBOyccyHxBJyj226DXXaBjh3h2GNh9eqwI3LOFbvIJGARuVxEFojIv4PHiWHHFHPVVXDzzXD33fDvf8OKFfA//1P4OG64AUTgoouyr7d1K/zsZzBgAHToYI9XXw01NfF1Jk2ybSVOvXvnNXznXIq2YQcAICIHA5cAe6jqWhHpDrwmIq+o6swwY6uogMmT4aWX4IADbN5FF8F11xU2jnnz4J57YI896l/3xhvh9tth+nTYfXdYsADOPBPat7fEHDNkCMyeHX9eUtLsYTvnsohEAgZiB/TbAWuBrljr/JPElURkPDAeoKysrCCB3XwzHHJIPPkC9OwJa9YUZPcArFsHZ5wB994L115b//pz58KYMTYB9O8PJ55orfdEbdt6q9e5MEWiBKGqi7HE+oqI/Ad4A7hEVRekrHe3qparannPnj3zHteWLfDkk/CtbyXPr6qCbbfNfTs33ABdumSfXngh8+vHj4dvfxsOPzy3/R10EMyaBYsX2/OFC+H55+G445LXW7EC+va1EsWpp9pz51zhRKIFLCK7AncBR6lqhYjsAjwlIh+q6ryw4nrjDdi4Ea64AiYmVKS3bIG99rJ/P/00/OQnUFtrjxdcUHc7558Pp5ySfV99+6aff889sGwZ3H9/7nFfcQV8+SXstpuVFWpqrI6dGNvIkTBtGgwdCp9+aiWVAw+Ed96B7bfPfV/OtUS1tbByZf73E4kEDJwIvKiqFQCqukxE/g84HQgtAS9ZAqWlVkMVic8/7TT4+tctsV18sbUut98eysvhpJNgxx2Tt9O9u02N2f/EidY6Li3N/XUPPQR/+hPMmAHDh9sPycUXW0v3Bz+wdUaPTn7N/vvDwIFWN7700obH6lwx2rwZli6FRYuSpyVLYNOm/O8/Kgn4P8DFIrKjqn4kIl2BY4B7wwxq3Tro0QMGD47PW7PGEtrvfgfz51srs18/W3bSSfDUU3DuucnbueEGm7J55hk4+ODkeS+/bPv72tfi87ZuhX/9C+66Cyor7cRaqssvhwkTrKwAdiJu5Uo7mRhLwKm6dLFkvXRp9jidK0br11tiXbw4OdGuWGH/p2L694dhw+CII+wx9f9yc4tEAlbVJ4Kyw99FpAroBPwNK0uEpkcPO5SvrYU2QbV88mQ7IXfAAfDoo/HkC7DTTvDBB3W309gSxDe/aa3qRGefbT8IEydmbhVv3Fi3R0NJib2PTDZtsi/nYYdlj9O5qFKFTz6p25pdtAg+/DC+Xrt29n9ojz1g3DhLtMOGWa+gTp2St9kqEjCAqk4BpoQdR6LDD7cyw/XXw3e/awn3/vutSxrYHzxVYqkiprEliG7dbErUubNtK7FVfNttNsVOuo0ZA7/6lZUchg+H11+HKVPge9+Lv2bCBFuvrMxqwL/8pbWozzyz4XE6V0hbt8J779VtzS5aBF98EV+vSxdLrEceGU+yw4ZZqa1tRDJfRMKIpp49rZZ62WXW8j34YJgzJ16S6NsXVq2Kr//++3YIU2hr1ljNKub3v7f+vhdcYMl1xx3tl/yaa+LrvP++1bLXrLH3uf/+1td4550LH79rPT6rrOaRilWcXN6P7p1Ls87fvBn+85+6SfY//0muz+6wgyXWU09NTrR9+6ZvEEWJaLpmXBEoLy/XioqKUGOoqbFeBLNmWblin33g2WehT59Qw3IusqbOWc7kZxbz09FDOW/UIMDOtUye8T5/eGot+2xbRvsN231Vn42VzUTi9dnEaejQxh1d5kpEXlXV8vrXbBxvATdB27bw299awb621noaePINR//+0LWr1eq3285+FAstU+uupe87F6rw8cfQa0MZB2zqyiszuvPwtdai/egjgJ2AnZhdqgweDCNG2BFaLNHuumvd+mxL4Am4iRKvOHPhmjvX6n5heaRiFZOfsUJ8rHWXKJ9JMtu+P6usZvrcdwHhzAP75zVBx+qz6U6ErVsH0A7oSYdOtey2Wy1HH90mqUU7YIBEpj5bCK3orTbNbbfBLbdYL4dRo+xkXAEuxnNF5OTyfkmPqepL0Pna9yMVq7j1uWUAdCotaZZ9b9qUuT67eXN8vV69LLGefno8yVZ88R53vvIO448b2uyfQ9FR1aKc9tlnHy2UiRNVd95Z9bnnVN98U3XwYNWzzirY7r9y/fWqoHrhhdnXW79e9eKLVcvKVDt0UD3gANX585PXmTNHdcwY1T59bJt//GN+Ys51P7ffrtq/v2r79qp77636r381bD/9+9vrystVH3igyWHnxdoNm/Wu2ct07YbNBd/vlH8u1in/XNLgfX/xherLL6ved5/q5ZernnCC6qBBqm3a2N8TVEVUBw5UPf541QkTVO+9V3XuXNXlq9K/33x9DvnYLlChecxj3gKuRzGOhnbOOXb13vTp1jf5gQesK87ChfH+xhs2WFe2730vuXtaNnPn2onG1Is/3n03fpIkVS77eeghq5/fcYeNY3HHHXal3sKF1k0OkrvdJXrmGeuL/dJLVn//6CN7r3vsYRegREn3zqWhtPi6dy7lJ0cNybhc1T63dGWDjz+Or1daarXYvfe2waES67MdO9bd7tQ56Vv8+foc8nmEkTf5zO75nArVAh43TnXUqOR5M2bYr36hfPGFtTCee85iydYC3rhRtaRE9bHHkufvvbfqVVelf03nzvW3gGtrbRsnnKBa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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(5,3), s=1)\n", "ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n", "X=np.linspace(0, 60000, 1000)\n", "plt.plot(X, t0 + t1*X, \"b\")\n", "plt.axis([0, 60000, 0, 10])\n", "plt.text(5000, 7.5, r\"$\\theta_0 = 4.85$\", fontsize=14, color=\"b\")\n", "plt.text(5000, 6.6, r\"$\\theta_1 = 4.91 \\times 10^{-5}$\", fontsize=14, color=\"b\")\n", "plt.plot([cyprus_gdp_per_capita, cyprus_gdp_per_capita], [0, cyprus_predicted_life_satisfaction], \"r--\")\n", "plt.text(25000, 5.0, r\"예측 = 5.96\", fontsize=14, color=\"b\")\n", "plt.plot(cyprus_gdp_per_capita, cyprus_predicted_life_satisfaction, \"ro\")\n", "save_fig('cyprus_prediction_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GDP per capitaLife satisfaction
Country
Portugal19121.5925.1
Slovenia20732.4825.7
Spain25864.7216.5
\n", "
" ], "text/plain": [ " GDP per capita Life satisfaction\n", "Country \n", "Portugal 19121.592 5.1\n", "Slovenia 20732.482 5.7\n", "Spain 25864.721 6.5" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_data[7:10]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5.766666666666667" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(5.1+5.7+6.5)/3" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GDP per capitaLife satisfaction
Country
Brazil8669.9987.0
Mexico9009.2806.7
Chile13340.9056.7
Czech Republic17256.9186.5
Norway74822.1067.4
Switzerland80675.3087.5
Luxembourg101994.0936.9
\n", "
" ], "text/plain": [ " GDP per capita Life satisfaction\n", "Country \n", "Brazil 8669.998 7.0\n", "Mexico 9009.280 6.7\n", "Chile 13340.905 6.7\n", "Czech Republic 17256.918 6.5\n", "Norway 74822.106 7.4\n", "Switzerland 80675.308 7.5\n", "Luxembourg 101994.093 6.9" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "missing_data" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "position_text2 = {\n", " \"Brazil\": (1000, 9.0, '브라질'),\n", " \"Mexico\": (11000, 9.0, '멕시코'),\n", " \"Chile\": (25000, 9.0, '칠레'),\n", " \"Czech Republic\": (35000, 9.0, '체코'),\n", " \"Norway\": (60000, 3, '노르웨이'),\n", " \"Switzerland\": (72000, 3.0, '스위스'),\n", " \"Luxembourg\": (90000, 3.0, '룩셈부르크'),\n", "}" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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u7J//37uuecesrOzadq0Ke+++26hayQlJTFq1Cj+/vtv6tevzzvvvENERIRT3k9JmjRpwsGDB+32LV68mIULFxIYGEhERARLly4tNnvyvn37eOyxx1i3bl2Rx33dhx9+yOuvv2637+jRo8ybN49BgwYBJknjnj17APPvnpubW+77jB071lZmwWrv3r2cO3fOtt21a1eys7PtzomLi+Pw4cPlvp+3K67YZuOi9iul/IHDWusOBfanO6FtQgjhsUaOHMnIkSPt9uUvXjhv3jyefPJJBgwYwH333ce3335b6BpTp06lT58+jBkzhgULFvDCCy8U+qB0tj/++IMTJ05w5MgRW4b49PR0Zs6cya5duwgKCuLtt99mzpw5vPDCC0VeY9OmTRw/fpzs7OyLsuZUUFAQnTt3tsuw/+eff1KrVi0A4uPjSU1N5ddff2X06NH8/vvvRV5n7NixVKlSxbZ98OBBu6zV8+bNK/Q1BXvUiurxiY4uNSeeTyrTd6JSSgH/Bh4EaiqlZhU4xd/RDRNCCE82ffp03n77bWrUsC/LV7WqyY/aokULNm/eTIMGDdi/fz9NmhSuT7x582Zb0DBs2DCuv/565zc8n7S0NMaOHcv06dO5++67WbVqFdWqVaNy5crUrl2br776igYNGrB582Zuu+22Iq9x6NAh5s6dy5133sm4ceN46623MB8ZF4/Dhw+zevXqQpmBd+3aRUxMDE8//TT33nsvs2bNYvPmzdxwQ9HlFseNG0ebNm1s26+88ord8T59+nDy5Em7Egu1a9cusW0JCQmEhISU9y35hLKG2uOA2lrr80qpN7DPgRMKLHBG44QQwp02b95MTEyM3b4hQ4bw+OOPA/D0008XWxfq/vvvZ+XKlaxbt47XXnuNSy65pNA5BQMBVwUGubm5rFy5kpkzZ/LQQw/xr3/9iw4dOtC7d28mTpzITTfdxNq1a/nss8/466+/GD9+fKHCjGfPnuWdd97h3XffZcWKFbRr14433niDvn37MnXqVK688kqXvBd3+/rrr2nWrBlz5swp8vj111/P7bffzujRo1mxYgULFy4s8rwHHniAQ4cOERcXZ9t39913c/nll9ud9/HHHxc7D+rEiRMMGDAAAD8/PwICAggODi41CPJVpQY4SqmhwP8BXS0Vv/tYDmmtdWel1DVA0f9iQgjhpdq3b09Skim1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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n", "ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n", "plt.axis([0, 110000, 0, 10])\n", "\n", "for country, pos_text in position_text2.items():\n", " pos_data_x, pos_data_y = missing_data.loc[country]\n", " plt.annotate(pos_text[2], xy=(pos_data_x, pos_data_y), xytext=pos_text[:2],\n", " arrowprops=dict(facecolor='black', width=0.5, shrink=0.1, headwidth=5))\n", " plt.plot(pos_data_x, pos_data_y, \"rs\")\n", "\n", "X=np.linspace(0, 110000, 1000)\n", "plt.plot(X, t0 + t1*X, \"b:\")\n", "\n", "lin_reg_full = linear_model.LinearRegression()\n", "Xfull = np.c_[full_country_stats[\"GDP per capita\"]]\n", "yfull = np.c_[full_country_stats[\"Life satisfaction\"]]\n", "lin_reg_full.fit(Xfull, yfull)\n", "\n", "t0full, t1full = lin_reg_full.intercept_[0], lin_reg_full.coef_[0][0]\n", "X = np.linspace(0, 110000, 1000)\n", "plt.plot(X, t0full + t1full * X, \"k\")\n", "\n", "save_fig('representative_training_data_scatterplot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/haesun/anaconda3/envs/handson-ml/lib/python3.6/site-packages/numpy/lib/nanfunctions.py:1508: RuntimeWarning: overflow encountered in multiply\n", " sqr = np.multiply(arr, arr, out=arr)\n", "/home/haesun/anaconda3/envs/handson-ml/lib/python3.6/site-packages/numpy/core/fromnumeric.py:86: RuntimeWarning: overflow encountered in reduce\n", " return ufunc.reduce(obj, axis, dtype, out, **passkwargs)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = full_country_stats.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\n", "ax.set(xlabel='1인당 GDP', ylabel='삶의 만족도')\n", "plt.axis([0, 110000, 0, 10])\n", "\n", "from sklearn import preprocessing\n", "from sklearn import pipeline\n", "\n", "poly = preprocessing.PolynomialFeatures(degree=60, include_bias=False)\n", "scaler = preprocessing.StandardScaler()\n", "lin_reg2 = linear_model.LinearRegression()\n", "\n", "pipeline_reg = pipeline.Pipeline([('poly', poly), ('scal', scaler), ('lin', lin_reg2)])\n", "pipeline_reg.fit(Xfull, yfull)\n", "curve = pipeline_reg.predict(X[:, np.newaxis])\n", "plt.plot(X, curve)\n", "save_fig('overfitting_model_plot')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Country\n", "New Zealand 7.3\n", "Sweden 7.2\n", "Norway 7.4\n", "Switzerland 7.5\n", "Name: Life satisfaction, dtype: float64" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "full_country_stats.loc[[c for c in full_country_stats.index if \"W\" in c.upper()]][\"Life satisfaction\"]" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Subject DescriptorUnitsScaleCountry/Series-specific NotesGDP per capitaEstimates Start After
Country
BotswanaGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...6040.9572008.0
KuwaitGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...29363.0272014.0
MalawiGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...354.2752011.0
New ZealandGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...37044.8912015.0
NorwayGross domestic product per capita, current pricesU.S. dollarsUnitsSee notes for: Gross domestic product, curren...74822.1062015.0
\n", "
" ], "text/plain": [ " Subject Descriptor Units \\\n", "Country \n", "Botswana Gross domestic product per capita, current prices U.S. dollars \n", "Kuwait Gross domestic product per capita, current prices U.S. dollars \n", "Malawi Gross domestic product per capita, current prices U.S. dollars \n", "New Zealand Gross domestic product per capita, current prices U.S. dollars \n", "Norway Gross domestic product per capita, current prices U.S. dollars \n", "\n", " Scale Country/Series-specific Notes \\\n", "Country \n", "Botswana Units See notes for: Gross domestic product, curren... \n", "Kuwait Units See notes for: Gross domestic product, curren... \n", "Malawi Units See notes for: Gross domestic product, curren... \n", "New Zealand Units See notes for: Gross domestic product, curren... \n", "Norway Units See notes for: Gross domestic product, curren... \n", "\n", " GDP per capita Estimates Start After \n", "Country \n", "Botswana 6040.957 2008.0 \n", "Kuwait 29363.027 2014.0 \n", "Malawi 354.275 2011.0 \n", "New Zealand 37044.891 2015.0 \n", "Norway 74822.106 2015.0 " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gdp_per_capita.loc[[c for c in gdp_per_capita.index if \"W\" in c.upper()]].head()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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/Fo/5s2bR0xMDMuWLfMod5CSkkL9+vWd9aHWrFlDvXr1CjwvuMpEuBs2bBgNGzb02P7kk0/mOyv0Z5995vz3qFGjuPzyy/M938iRIxk5ciTZ2dkMGjSIyZMn069fP/bs2eMMiowxhIeH89NPP9GkSROstfz4449en+fmm2/2KpGxbds2n+f96aef2L17Nx9//DF169bl2WefJTk5mVdffZUrrriC5557jldffZXDhw9zzTXXcMcddxAbG8vevXt9Hq9GjRpe329HDTGH7777jp9++on777+fo0ePcscdd+R7X34PDXCUUqqauuqqq3jhhRd48MEHSU9PJyEhgfbt25OWlua178iRIz2qVhdWeXvChAls3bqV/fv3e6xft24dI0aMAODSSy8lOzub9PR0r/fHxsY6a0u99dZbzJkzh+3bt3sECwMGDCA1NZWgoCDnOkdrQlEtWbKEgQMHMmjQIDp16sSAAQO89tmwYYNHq05+fvvtN1q0aOGx7ttvv6V///4MGDAg31aIY8eOsWfPHrp27Vrg8VNTU/njH/9IaGgoP//8M1999RULFy4kMTHRuc/KlSvp1KkT11xzDdZaNmzYwP/+9z/n9qCgIL7//ns6duxIVlYW9erV49lnn/V5vqysLO6//35mz57NjBkzmD9/vrMYqMNdd93F66+/TufOnZk8eTKrV6/m6quv9poxujhycnKIiIhg1qxZ/Prrr+zcubPExyqIBjhKKVUOCmppKSvNmzfnzTffZNKkSdSsWZOlS5cSHBxMrVq1POo4DRs2jO3bt5OSkuJcd8MNN3DllVfme+x58+YBrhwch7xlEKy1XuvAuwVn0aJFrF271qv7Y9myZUXKWZkwYYJHF5XDo48+6mxBKCxoc3CvE+Xup59+olevXs7aUZ9++ik7d+7EGMOXX37JsGHDfL7vySefZMKECfj5SdprYmIi0dHRPProo4wYMYKcnBymTZvGpk2bmDVrFl26dGHmzJk8/PDDzlaf48ePk5iYyNmzZ2ncuDFv5P5AXXfddRw9epSjR4/SokULrr76ahISEli4cCH79u1zBit581vS09MZOnQoffr0YfLkydxwww2MHTuWt956y2O/qKgofv31V+rWrcuxY8cwxhAbG8vu3bt9ftbs7Gyv+3f+vKt2dpcuXYiJiaFOnTq0adOG0aNHU7duXQIDA6lV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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8,3))\n", "\n", "plt.xlabel(\"1인당 GDP\")\n", "plt.ylabel('삶의 만족도')\n", "\n", "plt.plot(list(sample_data[\"GDP per capita\"]), list(sample_data[\"Life satisfaction\"]), \"bo\")\n", "plt.plot(list(missing_data[\"GDP per capita\"]), list(missing_data[\"Life satisfaction\"]), \"rs\")\n", "\n", "X = np.linspace(0, 110000, 1000)\n", "plt.plot(X, t0full + t1full * X, \"r--\", label=\"모든 데이터로 만든 선형 모델\")\n", "plt.plot(X, t0 + t1*X, \"b:\", label=\"일부 데이터로 만든 선형 모델\")\n", "\n", "ridge = linear_model.Ridge(alpha=10**9.5)\n", "Xsample = np.c_[sample_data[\"GDP per capita\"]]\n", "ysample = np.c_[sample_data[\"Life satisfaction\"]]\n", "ridge.fit(Xsample, ysample)\n", "t0ridge, t1ridge = ridge.intercept_[0], ridge.coef_[0][0]\n", "plt.plot(X, t0ridge + t1ridge * X, \"b\", label=\"일부 데이터로 만든 규제가 적용된 선형 모델\")\n", "\n", "plt.legend(loc=\"lower right\")\n", "plt.axis([0, 110000, 0, 10])\n", "save_fig('ridge_model_plot')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": true }, "toc_position": { "height": "616px", "left": "0px", "right": "20px", "top": "106px", "width": "213px" } }, "nbformat": 4, "nbformat_minor": 1 }