Files
hands-on/01_the_machine_learning_landscape.ipynb
2018-03-16 15:02:50 +09:00

2809 lines
245 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPython 3.5.5\n",
"IPython 6.2.1\n",
"\n",
"numpy 1.14.1\n",
"scipy 1.0.0\n",
"sklearn 0.19.1\n",
"pandas 0.22.0\n",
"matplotlib 2.2.0\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",
"\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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"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=\"삶의 만족도\", ylabel=\"1인당 GDP\")\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": [
"# 선형 회귀 모델을 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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>Indicator</th>\n",
" <th>Air pollution</th>\n",
" <th>Assault rate</th>\n",
" <th>Consultation on rule-making</th>\n",
" <th>Dwellings without basic facilities</th>\n",
" <th>Educational attainment</th>\n",
" <th>Employees working very long hours</th>\n",
" <th>Employment rate</th>\n",
" <th>Homicide rate</th>\n",
" <th>Household net adjusted disposable income</th>\n",
" <th>Household net financial wealth</th>\n",
" <th>...</th>\n",
" <th>Long-term unemployment rate</th>\n",
" <th>Personal earnings</th>\n",
" <th>Quality of support network</th>\n",
" <th>Rooms per person</th>\n",
" <th>Self-reported health</th>\n",
" <th>Student skills</th>\n",
" <th>Time devoted to leisure and personal care</th>\n",
" <th>Voter turnout</th>\n",
" <th>Water quality</th>\n",
" <th>Years in education</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>13.0</td>\n",
" <td>2.1</td>\n",
" <td>10.5</td>\n",
" <td>1.1</td>\n",
" <td>76.0</td>\n",
" <td>14.02</td>\n",
" <td>72.0</td>\n",
" <td>0.8</td>\n",
" <td>31588.0</td>\n",
" <td>47657.0</td>\n",
" <td>...</td>\n",
" <td>1.08</td>\n",
" <td>50449.0</td>\n",
" <td>92.0</td>\n",
" <td>2.3</td>\n",
" <td>85.0</td>\n",
" <td>512.0</td>\n",
" <td>14.41</td>\n",
" <td>93.0</td>\n",
" <td>91.0</td>\n",
" <td>19.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Austria</th>\n",
" <td>27.0</td>\n",
" <td>3.4</td>\n",
" <td>7.1</td>\n",
" <td>1.0</td>\n",
" <td>83.0</td>\n",
" <td>7.61</td>\n",
" <td>72.0</td>\n",
" <td>0.4</td>\n",
" <td>31173.0</td>\n",
" <td>49887.0</td>\n",
" <td>...</td>\n",
" <td>1.19</td>\n",
" <td>45199.0</td>\n",
" <td>89.0</td>\n",
" <td>1.6</td>\n",
" <td>69.0</td>\n",
" <td>500.0</td>\n",
" <td>14.46</td>\n",
" <td>75.0</td>\n",
" <td>94.0</td>\n",
" <td>17.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 24 columns</p>\n",
"</div>"
],
"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 ... \\\n",
"Country ... \n",
"Australia 47657.0 ... \n",
"Austria 49887.0 ... \n",
"\n",
"Indicator Long-term unemployment rate Personal earnings \\\n",
"Country \n",
"Australia 1.08 50449.0 \n",
"Austria 1.19 45199.0 \n",
"\n",
"Indicator Quality of support network Rooms per person Self-reported health \\\n",
"Country \n",
"Australia 92.0 2.3 85.0 \n",
"Austria 89.0 1.6 69.0 \n",
"\n",
"Indicator Student skills Time devoted to leisure and personal care \\\n",
"Country \n",
"Australia 512.0 14.41 \n",
"Austria 500.0 14.46 \n",
"\n",
"Indicator Voter turnout Water quality Years in education \n",
"Country \n",
"Australia 93.0 91.0 19.4 \n",
"Austria 75.0 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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>599.994</td>\n",
" <td>2013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Albania</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>3995.383</td>\n",
" <td>2010.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Air pollution</th>\n",
" <th>Assault rate</th>\n",
" <th>Consultation on rule-making</th>\n",
" <th>Dwellings without basic facilities</th>\n",
" <th>Educational attainment</th>\n",
" <th>Employees working very long hours</th>\n",
" <th>Employment rate</th>\n",
" <th>Homicide rate</th>\n",
" <th>Household net adjusted disposable income</th>\n",
" <th>Household net financial wealth</th>\n",
" <th>...</th>\n",
" <th>Time devoted to leisure and personal care</th>\n",
" <th>Voter turnout</th>\n",
" <th>Water quality</th>\n",
" <th>Years in education</th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brazil</th>\n",
" <td>18.0</td>\n",
" <td>7.9</td>\n",
" <td>4.0</td>\n",
" <td>6.7</td>\n",
" <td>45.0</td>\n",
" <td>10.41</td>\n",
" <td>67.0</td>\n",
" <td>25.5</td>\n",
" <td>11664.0</td>\n",
" <td>6844.0</td>\n",
" <td>...</td>\n",
" <td>14.97</td>\n",
" <td>79.0</td>\n",
" <td>72.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>8669.998</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mexico</th>\n",
" <td>30.0</td>\n",
" <td>12.8</td>\n",
" <td>9.0</td>\n",
" <td>4.2</td>\n",
" <td>37.0</td>\n",
" <td>28.83</td>\n",
" <td>61.0</td>\n",
" <td>23.4</td>\n",
" <td>13085.0</td>\n",
" <td>9056.0</td>\n",
" <td>...</td>\n",
" <td>13.89</td>\n",
" <td>63.0</td>\n",
" <td>67.0</td>\n",
" <td>14.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9009.280</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Russia</th>\n",
" <td>15.0</td>\n",
" <td>3.8</td>\n",
" <td>2.5</td>\n",
" <td>15.1</td>\n",
" <td>94.0</td>\n",
" <td>0.16</td>\n",
" <td>69.0</td>\n",
" <td>12.8</td>\n",
" <td>19292.0</td>\n",
" <td>3412.0</td>\n",
" <td>...</td>\n",
" <td>14.97</td>\n",
" <td>65.0</td>\n",
" <td>56.0</td>\n",
" <td>16.0</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9054.914</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Turkey</th>\n",
" <td>35.0</td>\n",
" <td>5.0</td>\n",
" <td>5.5</td>\n",
" <td>12.7</td>\n",
" <td>34.0</td>\n",
" <td>40.86</td>\n",
" <td>50.0</td>\n",
" <td>1.2</td>\n",
" <td>14095.0</td>\n",
" <td>3251.0</td>\n",
" <td>...</td>\n",
" <td>13.42</td>\n",
" <td>88.0</td>\n",
" <td>62.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>9437.372</td>\n",
" <td>2013.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Hungary</th>\n",
" <td>15.0</td>\n",
" <td>3.6</td>\n",
" <td>7.9</td>\n",
" <td>4.8</td>\n",
" <td>82.0</td>\n",
" <td>3.19</td>\n",
" <td>58.0</td>\n",
" <td>1.3</td>\n",
" <td>15442.0</td>\n",
" <td>13277.0</td>\n",
" <td>...</td>\n",
" <td>15.04</td>\n",
" <td>62.0</td>\n",
" <td>77.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>12239.894</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Poland</th>\n",
" <td>33.0</td>\n",
" <td>1.4</td>\n",
" <td>10.8</td>\n",
" <td>3.2</td>\n",
" <td>90.0</td>\n",
" <td>7.41</td>\n",
" <td>60.0</td>\n",
" <td>0.9</td>\n",
" <td>17852.0</td>\n",
" <td>10919.0</td>\n",
" <td>...</td>\n",
" <td>14.20</td>\n",
" <td>55.0</td>\n",
" <td>79.0</td>\n",
" <td>18.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>12495.334</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chile</th>\n",
" <td>46.0</td>\n",
" <td>6.9</td>\n",
" <td>2.0</td>\n",
" <td>9.4</td>\n",
" <td>57.0</td>\n",
" <td>15.42</td>\n",
" <td>62.0</td>\n",
" <td>4.4</td>\n",
" <td>14533.0</td>\n",
" <td>17733.0</td>\n",
" <td>...</td>\n",
" <td>14.41</td>\n",
" <td>49.0</td>\n",
" <td>73.0</td>\n",
" <td>16.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>13340.905</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovak Republic</th>\n",
" <td>13.0</td>\n",
" <td>3.0</td>\n",
" <td>6.6</td>\n",
" <td>0.6</td>\n",
" <td>92.0</td>\n",
" <td>7.02</td>\n",
" <td>60.0</td>\n",
" <td>1.2</td>\n",
" <td>17503.0</td>\n",
" <td>8663.0</td>\n",
" <td>...</td>\n",
" <td>14.99</td>\n",
" <td>59.0</td>\n",
" <td>81.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>15991.736</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Czech Republic</th>\n",
" <td>16.0</td>\n",
" <td>2.8</td>\n",
" <td>6.8</td>\n",
" <td>0.9</td>\n",
" <td>92.0</td>\n",
" <td>6.98</td>\n",
" <td>68.0</td>\n",
" <td>0.8</td>\n",
" <td>18404.0</td>\n",
" <td>17299.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>59.0</td>\n",
" <td>85.0</td>\n",
" <td>18.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>17256.918</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Estonia</th>\n",
" <td>9.0</td>\n",
" <td>5.5</td>\n",
" <td>3.3</td>\n",
" <td>8.1</td>\n",
" <td>90.0</td>\n",
" <td>3.30</td>\n",
" <td>68.0</td>\n",
" <td>4.8</td>\n",
" <td>15167.0</td>\n",
" <td>7680.0</td>\n",
" <td>...</td>\n",
" <td>14.90</td>\n",
" <td>64.0</td>\n",
" <td>79.0</td>\n",
" <td>17.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>17288.083</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Greece</th>\n",
" <td>27.0</td>\n",
" <td>3.7</td>\n",
" <td>6.5</td>\n",
" <td>0.7</td>\n",
" <td>68.0</td>\n",
" <td>6.16</td>\n",
" <td>49.0</td>\n",
" <td>1.6</td>\n",
" <td>18575.0</td>\n",
" <td>14579.0</td>\n",
" <td>...</td>\n",
" <td>14.91</td>\n",
" <td>64.0</td>\n",
" <td>69.0</td>\n",
" <td>18.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>18064.288</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Portugal</th>\n",
" <td>18.0</td>\n",
" <td>5.7</td>\n",
" <td>6.5</td>\n",
" <td>0.9</td>\n",
" <td>38.0</td>\n",
" <td>9.62</td>\n",
" <td>61.0</td>\n",
" <td>1.1</td>\n",
" <td>20086.0</td>\n",
" <td>31245.0</td>\n",
" <td>...</td>\n",
" <td>14.95</td>\n",
" <td>58.0</td>\n",
" <td>86.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>19121.592</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovenia</th>\n",
" <td>26.0</td>\n",
" <td>3.9</td>\n",
" <td>10.3</td>\n",
" <td>0.5</td>\n",
" <td>85.0</td>\n",
" <td>5.63</td>\n",
" <td>63.0</td>\n",
" <td>0.4</td>\n",
" <td>19326.0</td>\n",
" <td>18465.0</td>\n",
" <td>...</td>\n",
" <td>14.62</td>\n",
" <td>52.0</td>\n",
" <td>88.0</td>\n",
" <td>18.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>20732.482</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spain</th>\n",
" <td>24.0</td>\n",
" <td>4.2</td>\n",
" <td>7.3</td>\n",
" <td>0.1</td>\n",
" <td>55.0</td>\n",
" <td>5.89</td>\n",
" <td>56.0</td>\n",
" <td>0.6</td>\n",
" <td>22477.0</td>\n",
" <td>24774.0</td>\n",
" <td>...</td>\n",
" <td>16.06</td>\n",
" <td>69.0</td>\n",
" <td>71.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>25864.721</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Korea</th>\n",
" <td>30.0</td>\n",
" <td>2.1</td>\n",
" <td>10.4</td>\n",
" <td>4.2</td>\n",
" <td>82.0</td>\n",
" <td>18.72</td>\n",
" <td>64.0</td>\n",
" <td>1.1</td>\n",
" <td>19510.0</td>\n",
" <td>29091.0</td>\n",
" <td>...</td>\n",
" <td>14.63</td>\n",
" <td>76.0</td>\n",
" <td>78.0</td>\n",
" <td>17.5</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>27195.197</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Italy</th>\n",
" <td>21.0</td>\n",
" <td>4.7</td>\n",
" <td>5.0</td>\n",
" <td>1.1</td>\n",
" <td>57.0</td>\n",
" <td>3.66</td>\n",
" <td>56.0</td>\n",
" <td>0.7</td>\n",
" <td>25166.0</td>\n",
" <td>54987.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>75.0</td>\n",
" <td>71.0</td>\n",
" <td>16.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>29866.581</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Japan</th>\n",
" <td>24.0</td>\n",
" <td>1.4</td>\n",
" <td>7.3</td>\n",
" <td>6.4</td>\n",
" <td>94.0</td>\n",
" <td>22.26</td>\n",
" <td>72.0</td>\n",
" <td>0.3</td>\n",
" <td>26111.0</td>\n",
" <td>86764.0</td>\n",
" <td>...</td>\n",
" <td>14.93</td>\n",
" <td>53.0</td>\n",
" <td>85.0</td>\n",
" <td>16.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>32485.545</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Israel</th>\n",
" <td>21.0</td>\n",
" <td>6.4</td>\n",
" <td>2.5</td>\n",
" <td>3.7</td>\n",
" <td>85.0</td>\n",
" <td>16.03</td>\n",
" <td>67.0</td>\n",
" <td>2.3</td>\n",
" <td>22104.0</td>\n",
" <td>52933.0</td>\n",
" <td>...</td>\n",
" <td>14.48</td>\n",
" <td>68.0</td>\n",
" <td>68.0</td>\n",
" <td>15.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>35343.336</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>New Zealand</th>\n",
" <td>11.0</td>\n",
" <td>2.2</td>\n",
" <td>10.3</td>\n",
" <td>0.2</td>\n",
" <td>74.0</td>\n",
" <td>13.87</td>\n",
" <td>73.0</td>\n",
" <td>1.2</td>\n",
" <td>23815.0</td>\n",
" <td>28290.0</td>\n",
" <td>...</td>\n",
" <td>14.87</td>\n",
" <td>77.0</td>\n",
" <td>89.0</td>\n",
" <td>18.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37044.891</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>France</th>\n",
" <td>12.0</td>\n",
" <td>5.0</td>\n",
" <td>3.5</td>\n",
" <td>0.5</td>\n",
" <td>73.0</td>\n",
" <td>8.15</td>\n",
" <td>64.0</td>\n",
" <td>0.6</td>\n",
" <td>28799.0</td>\n",
" <td>48741.0</td>\n",
" <td>...</td>\n",
" <td>15.33</td>\n",
" <td>80.0</td>\n",
" <td>82.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37675.006</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Belgium</th>\n",
" <td>21.0</td>\n",
" <td>6.6</td>\n",
" <td>4.5</td>\n",
" <td>2.0</td>\n",
" <td>72.0</td>\n",
" <td>4.57</td>\n",
" <td>62.0</td>\n",
" <td>1.1</td>\n",
" <td>28307.0</td>\n",
" <td>83876.0</td>\n",
" <td>...</td>\n",
" <td>15.71</td>\n",
" <td>89.0</td>\n",
" <td>87.0</td>\n",
" <td>18.9</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>40106.632</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Germany</th>\n",
" <td>16.0</td>\n",
" <td>3.6</td>\n",
" <td>4.5</td>\n",
" <td>0.1</td>\n",
" <td>86.0</td>\n",
" <td>5.25</td>\n",
" <td>73.0</td>\n",
" <td>0.5</td>\n",
" <td>31252.0</td>\n",
" <td>50394.0</td>\n",
" <td>...</td>\n",
" <td>15.31</td>\n",
" <td>72.0</td>\n",
" <td>95.0</td>\n",
" <td>18.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>40996.511</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Finland</th>\n",
" <td>15.0</td>\n",
" <td>2.4</td>\n",
" <td>9.0</td>\n",
" <td>0.6</td>\n",
" <td>85.0</td>\n",
" <td>3.58</td>\n",
" <td>69.0</td>\n",
" <td>1.4</td>\n",
" <td>27927.0</td>\n",
" <td>18761.0</td>\n",
" <td>...</td>\n",
" <td>14.89</td>\n",
" <td>69.0</td>\n",
" <td>94.0</td>\n",
" <td>19.7</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>41973.988</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Canada</th>\n",
" <td>15.0</td>\n",
" <td>1.3</td>\n",
" <td>10.5</td>\n",
" <td>0.2</td>\n",
" <td>89.0</td>\n",
" <td>3.94</td>\n",
" <td>72.0</td>\n",
" <td>1.5</td>\n",
" <td>29365.0</td>\n",
" <td>67913.0</td>\n",
" <td>...</td>\n",
" <td>14.25</td>\n",
" <td>61.0</td>\n",
" <td>91.0</td>\n",
" <td>17.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43331.961</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Netherlands</th>\n",
" <td>30.0</td>\n",
" <td>4.9</td>\n",
" <td>6.1</td>\n",
" <td>0.0</td>\n",
" <td>73.0</td>\n",
" <td>0.45</td>\n",
" <td>74.0</td>\n",
" <td>0.9</td>\n",
" <td>27888.0</td>\n",
" <td>77961.0</td>\n",
" <td>...</td>\n",
" <td>15.44</td>\n",
" <td>75.0</td>\n",
" <td>92.0</td>\n",
" <td>18.7</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43603.115</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Austria</th>\n",
" <td>27.0</td>\n",
" <td>3.4</td>\n",
" <td>7.1</td>\n",
" <td>1.0</td>\n",
" <td>83.0</td>\n",
" <td>7.61</td>\n",
" <td>72.0</td>\n",
" <td>0.4</td>\n",
" <td>31173.0</td>\n",
" <td>49887.0</td>\n",
" <td>...</td>\n",
" <td>14.46</td>\n",
" <td>75.0</td>\n",
" <td>94.0</td>\n",
" <td>17.0</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43724.031</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United Kingdom</th>\n",
" <td>13.0</td>\n",
" <td>1.9</td>\n",
" <td>11.5</td>\n",
" <td>0.2</td>\n",
" <td>78.0</td>\n",
" <td>12.70</td>\n",
" <td>71.0</td>\n",
" <td>0.3</td>\n",
" <td>27029.0</td>\n",
" <td>60778.0</td>\n",
" <td>...</td>\n",
" <td>14.83</td>\n",
" <td>66.0</td>\n",
" <td>88.0</td>\n",
" <td>16.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>43770.688</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sweden</th>\n",
" <td>10.0</td>\n",
" <td>5.1</td>\n",
" <td>10.9</td>\n",
" <td>0.0</td>\n",
" <td>88.0</td>\n",
" <td>1.13</td>\n",
" <td>74.0</td>\n",
" <td>0.7</td>\n",
" <td>29185.0</td>\n",
" <td>60328.0</td>\n",
" <td>...</td>\n",
" <td>15.11</td>\n",
" <td>86.0</td>\n",
" <td>95.0</td>\n",
" <td>19.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>49866.266</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iceland</th>\n",
" <td>18.0</td>\n",
" <td>2.7</td>\n",
" <td>5.1</td>\n",
" <td>0.4</td>\n",
" <td>71.0</td>\n",
" <td>12.25</td>\n",
" <td>82.0</td>\n",
" <td>0.3</td>\n",
" <td>23965.0</td>\n",
" <td>43045.0</td>\n",
" <td>...</td>\n",
" <td>14.61</td>\n",
" <td>81.0</td>\n",
" <td>97.0</td>\n",
" <td>19.8</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>50854.583</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>13.0</td>\n",
" <td>2.1</td>\n",
" <td>10.5</td>\n",
" <td>1.1</td>\n",
" <td>76.0</td>\n",
" <td>14.02</td>\n",
" <td>72.0</td>\n",
" <td>0.8</td>\n",
" <td>31588.0</td>\n",
" <td>47657.0</td>\n",
" <td>...</td>\n",
" <td>14.41</td>\n",
" <td>93.0</td>\n",
" <td>91.0</td>\n",
" <td>19.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>50961.865</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ireland</th>\n",
" <td>13.0</td>\n",
" <td>2.6</td>\n",
" <td>9.0</td>\n",
" <td>0.2</td>\n",
" <td>75.0</td>\n",
" <td>4.20</td>\n",
" <td>60.0</td>\n",
" <td>0.8</td>\n",
" <td>23917.0</td>\n",
" <td>31580.0</td>\n",
" <td>...</td>\n",
" <td>15.19</td>\n",
" <td>70.0</td>\n",
" <td>80.0</td>\n",
" <td>17.6</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>51350.744</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Denmark</th>\n",
" <td>15.0</td>\n",
" <td>3.9</td>\n",
" <td>7.0</td>\n",
" <td>0.9</td>\n",
" <td>78.0</td>\n",
" <td>2.03</td>\n",
" <td>73.0</td>\n",
" <td>0.3</td>\n",
" <td>26491.0</td>\n",
" <td>44488.0</td>\n",
" <td>...</td>\n",
" <td>16.06</td>\n",
" <td>88.0</td>\n",
" <td>94.0</td>\n",
" <td>19.4</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>52114.165</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United States</th>\n",
" <td>18.0</td>\n",
" <td>1.5</td>\n",
" <td>8.3</td>\n",
" <td>0.1</td>\n",
" <td>89.0</td>\n",
" <td>11.30</td>\n",
" <td>67.0</td>\n",
" <td>5.2</td>\n",
" <td>41355.0</td>\n",
" <td>145769.0</td>\n",
" <td>...</td>\n",
" <td>14.27</td>\n",
" <td>68.0</td>\n",
" <td>85.0</td>\n",
" <td>17.2</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>55805.204</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>16.0</td>\n",
" <td>3.3</td>\n",
" <td>8.1</td>\n",
" <td>0.3</td>\n",
" <td>82.0</td>\n",
" <td>2.82</td>\n",
" <td>75.0</td>\n",
" <td>0.6</td>\n",
" <td>33492.0</td>\n",
" <td>8797.0</td>\n",
" <td>...</td>\n",
" <td>15.56</td>\n",
" <td>78.0</td>\n",
" <td>94.0</td>\n",
" <td>17.9</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>74822.106</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Switzerland</th>\n",
" <td>20.0</td>\n",
" <td>4.2</td>\n",
" <td>8.4</td>\n",
" <td>0.0</td>\n",
" <td>86.0</td>\n",
" <td>6.72</td>\n",
" <td>80.0</td>\n",
" <td>0.5</td>\n",
" <td>33491.0</td>\n",
" <td>108823.0</td>\n",
" <td>...</td>\n",
" <td>14.98</td>\n",
" <td>49.0</td>\n",
" <td>96.0</td>\n",
" <td>17.3</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>80675.308</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luxembourg</th>\n",
" <td>12.0</td>\n",
" <td>4.3</td>\n",
" <td>6.0</td>\n",
" <td>0.1</td>\n",
" <td>78.0</td>\n",
" <td>3.47</td>\n",
" <td>66.0</td>\n",
" <td>0.4</td>\n",
" <td>38951.0</td>\n",
" <td>61765.0</td>\n",
" <td>...</td>\n",
" <td>15.12</td>\n",
" <td>91.0</td>\n",
" <td>86.0</td>\n",
" <td>15.1</td>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>101994.093</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>36 rows × 30 columns</p>\n",
"</div>"
],
"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": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Hungary</th>\n",
" <td>12239.894</td>\n",
" <td>4.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Korea</th>\n",
" <td>27195.197</td>\n",
" <td>5.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>France</th>\n",
" <td>37675.006</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Australia</th>\n",
" <td>50961.865</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United States</th>\n",
" <td>55805.204</td>\n",
" <td>7.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": "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\n",
"text/plain": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"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": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"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()\n"
]
},
{
"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)[0][0]\n",
"cyprus_predicted_life_satisfaction"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAADQCAYAAAA53LuNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAAIABJREFUeJzt3XmYFOW1wOHfYWBYRUQQBBlZRECioo6iRsVdUTExRHFJoiaKRk00ileDxhCjEo0hmrih0UBUEpeb6xZNggpERYLjhsoSFiW4AyrIMDAMc+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": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {},
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Portugal</th>\n",
" <td>19121.592</td>\n",
" <td>5.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Slovenia</th>\n",
" <td>20732.482</td>\n",
" <td>5.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Spain</th>\n",
" <td>25864.721</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>GDP per capita</th>\n",
" <th>Life satisfaction</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Brazil</th>\n",
" <td>8669.998</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mexico</th>\n",
" <td>9009.280</td>\n",
" <td>6.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chile</th>\n",
" <td>13340.905</td>\n",
" <td>6.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Czech Republic</th>\n",
" <td>17256.918</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>74822.106</td>\n",
" <td>7.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Switzerland</th>\n",
" <td>80675.308</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luxembourg</th>\n",
" <td>101994.093</td>\n",
" <td>6.9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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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\n",
"text/plain": [
"<Figure size 576x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_data.plot(kind='scatter', x=\"GDP per capita\", y='Life satisfaction', figsize=(8,3))\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.5/site-packages/numpy/core/_methods.py:116: RuntimeWarning: overflow encountered in multiply\n",
" x = um.multiply(x, x, out=x)\n",
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/numpy/core/_methods.py:117: RuntimeWarning: overflow encountered in reduce\n",
" ret = umr_sum(x, axis, dtype, out, keepdims)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 1 Axes>"
]
},
"metadata": {},
"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": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subject Descriptor</th>\n",
" <th>Units</th>\n",
" <th>Scale</th>\n",
" <th>Country/Series-specific Notes</th>\n",
" <th>GDP per capita</th>\n",
" <th>Estimates Start After</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Botswana</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>6040.957</td>\n",
" <td>2008.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kuwait</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>29363.027</td>\n",
" <td>2014.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Malawi</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>354.275</td>\n",
" <td>2011.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>New Zealand</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>37044.891</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Norway</th>\n",
" <td>Gross domestic product per capita, current prices</td>\n",
" <td>U.S. dollars</td>\n",
" <td>Units</td>\n",
" <td>See notes for: Gross domestic product, curren...</td>\n",
" <td>74822.106</td>\n",
" <td>2015.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<Figure size 576x216 with 1 Axes>"
]
},
"metadata": {},
"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.5.5"
},
"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
}