diff --git a/GDP Prediction/Readme.md b/GDP Prediction/Readme.md
new file mode 100644
index 000000000..aafc88948
--- /dev/null
+++ b/GDP Prediction/Readme.md
@@ -0,0 +1,13 @@
+**GDP Prediction Model**
+
+Dataset : https://www.kaggle.com/rutikbhoyar/gdp-prediction-dataset
+
+4 different learning regressors **(Linear Regression, SVM, Random Forest, and Gradiant Boosting)** were tested to predict GDP, and the best prediction performance was seen in the order : \
+\
+**Random Forest > Gradiant Boosting > Linear Regression > SVM**
+
+The Metrics for the best prediction performance using Random Forest regressor, using all features in the dataset is:
+
+1. MAE: 2125.24
+2. RMSE: 3051.71
+3. R2_Score: 0.8873
diff --git a/GDP Prediction/gdp-prediction-model.ipynb b/GDP Prediction/gdp-prediction-model.ipynb
new file mode 100644
index 000000000..010cc723d
--- /dev/null
+++ b/GDP Prediction/gdp-prediction-model.ipynb
@@ -0,0 +1,3820 @@
+{
+ "metadata": {
+ "kernelspec": {
+ "language": "python",
+ "display_name": "Python 3",
+ "name": "python3"
+ },
+ "language_info": {
+ "name": "python",
+ "version": "3.7.12",
+ "mimetype": "text/x-python",
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "pygments_lexer": "ipython3",
+ "nbconvert_exporter": "python",
+ "file_extension": ".py"
+ },
+ "colab": {
+ "name": "gdp-prediction-model.ipynb",
+ "provenance": []
+ }
+ },
+ "nbformat_minor": 0,
+ "nbformat": 4,
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Importing necessary libraries"
+ ],
+ "metadata": {
+ "id": "RaiCm2JYQnY6"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import numpy as np \n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns"
+ ],
+ "metadata": {
+ "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
+ "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:34.902728Z",
+ "iopub.execute_input": "2022-03-25T10:07:34.903232Z",
+ "iopub.status.idle": "2022-03-25T10:07:35.985950Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:34.903201Z",
+ "shell.execute_reply": "2022-03-25T10:07:35.985035Z"
+ },
+ "trusted": true,
+ "id": "WT18AgP1QnZA"
+ },
+ "execution_count": 6,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Initial Check on Dataset"
+ ],
+ "metadata": {
+ "id": "jz_-ngFkQnZC"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/gdrive')\n",
+ "df = pd.read_csv(\"/content/gdrive/My Drive/Colab Notebooks/world.csv\")\n",
+ "df.head()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:35.987621Z",
+ "iopub.execute_input": "2022-03-25T10:07:35.987942Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.037531Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:35.987909Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.036542Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 406
+ },
+ "id": "ykSkzIvCQnZD",
+ "outputId": "f7522154-beca-4d41-ef25-1d30b0f7e8bc"
+ },
+ "execution_count": 7,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Drive already mounted at /content/gdrive; to attempt to forcibly remount, call drive.mount(\"/content/gdrive\", force_remount=True).\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Country Region Population \\\n",
+ "0 Afghanistan ASIA (EX. NEAR EAST) 31056997 \n",
+ "1 Albania EASTERN EUROPE 3581655 \n",
+ "2 Algeria NORTHERN AFRICA 32930091 \n",
+ "3 American Samoa OCEANIA 57794 \n",
+ "4 Andorra WESTERN EUROPE 71201 \n",
+ "\n",
+ " Area (sq. mi.) Pop. Density (per sq. mi.) Coastline (coast/area ratio) \\\n",
+ "0 647500 48,0 0,00 \n",
+ "1 28748 124,6 1,26 \n",
+ "2 2381740 13,8 0,04 \n",
+ "3 199 290,4 58,29 \n",
+ "4 468 152,1 0,00 \n",
+ "\n",
+ " Net migration Infant mortality (per 1000 births) GDP ($ per capita) \\\n",
+ "0 23,06 163,07 700.0 \n",
+ "1 -4,93 21,52 4500.0 \n",
+ "2 -0,39 31 6000.0 \n",
+ "3 -20,71 9,27 8000.0 \n",
+ "4 6,6 4,05 19000.0 \n",
+ "\n",
+ " Literacy (%) Phones (per 1000) Arable (%) Crops (%) Other (%) Climate \\\n",
+ "0 36,0 3,2 12,13 0,22 87,65 1 \n",
+ "1 86,5 71,2 21,09 4,42 74,49 3 \n",
+ "2 70,0 78,1 3,22 0,25 96,53 1 \n",
+ "3 97,0 259,5 10 15 75 2 \n",
+ "4 100,0 497,2 2,22 0 97,78 3 \n",
+ "\n",
+ " Birthrate Deathrate Agriculture Industry Service \n",
+ "0 46,6 20,34 0,38 0,24 0,38 \n",
+ "1 15,11 5,22 0,232 0,188 0,579 \n",
+ "2 17,14 4,61 0,101 0,6 0,298 \n",
+ "3 22,46 3,27 NaN NaN NaN \n",
+ "4 8,71 6,25 NaN NaN NaN "
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country | \n",
+ " Region | \n",
+ " Population | \n",
+ " Area (sq. mi.) | \n",
+ " Pop. Density (per sq. mi.) | \n",
+ " Coastline (coast/area ratio) | \n",
+ " Net migration | \n",
+ " Infant mortality (per 1000 births) | \n",
+ " GDP ($ per capita) | \n",
+ " Literacy (%) | \n",
+ " Phones (per 1000) | \n",
+ " Arable (%) | \n",
+ " Crops (%) | \n",
+ " Other (%) | \n",
+ " Climate | \n",
+ " Birthrate | \n",
+ " Deathrate | \n",
+ " Agriculture | \n",
+ " Industry | \n",
+ " Service | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Afghanistan | \n",
+ " ASIA (EX. NEAR EAST) | \n",
+ " 31056997 | \n",
+ " 647500 | \n",
+ " 48,0 | \n",
+ " 0,00 | \n",
+ " 23,06 | \n",
+ " 163,07 | \n",
+ " 700.0 | \n",
+ " 36,0 | \n",
+ " 3,2 | \n",
+ " 12,13 | \n",
+ " 0,22 | \n",
+ " 87,65 | \n",
+ " 1 | \n",
+ " 46,6 | \n",
+ " 20,34 | \n",
+ " 0,38 | \n",
+ " 0,24 | \n",
+ " 0,38 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Albania | \n",
+ " EASTERN EUROPE | \n",
+ " 3581655 | \n",
+ " 28748 | \n",
+ " 124,6 | \n",
+ " 1,26 | \n",
+ " -4,93 | \n",
+ " 21,52 | \n",
+ " 4500.0 | \n",
+ " 86,5 | \n",
+ " 71,2 | \n",
+ " 21,09 | \n",
+ " 4,42 | \n",
+ " 74,49 | \n",
+ " 3 | \n",
+ " 15,11 | \n",
+ " 5,22 | \n",
+ " 0,232 | \n",
+ " 0,188 | \n",
+ " 0,579 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Algeria | \n",
+ " NORTHERN AFRICA | \n",
+ " 32930091 | \n",
+ " 2381740 | \n",
+ " 13,8 | \n",
+ " 0,04 | \n",
+ " -0,39 | \n",
+ " 31 | \n",
+ " 6000.0 | \n",
+ " 70,0 | \n",
+ " 78,1 | \n",
+ " 3,22 | \n",
+ " 0,25 | \n",
+ " 96,53 | \n",
+ " 1 | \n",
+ " 17,14 | \n",
+ " 4,61 | \n",
+ " 0,101 | \n",
+ " 0,6 | \n",
+ " 0,298 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " American Samoa | \n",
+ " OCEANIA | \n",
+ " 57794 | \n",
+ " 199 | \n",
+ " 290,4 | \n",
+ " 58,29 | \n",
+ " -20,71 | \n",
+ " 9,27 | \n",
+ " 8000.0 | \n",
+ " 97,0 | \n",
+ " 259,5 | \n",
+ " 10 | \n",
+ " 15 | \n",
+ " 75 | \n",
+ " 2 | \n",
+ " 22,46 | \n",
+ " 3,27 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Andorra | \n",
+ " WESTERN EUROPE | \n",
+ " 71201 | \n",
+ " 468 | \n",
+ " 152,1 | \n",
+ " 0,00 | \n",
+ " 6,6 | \n",
+ " 4,05 | \n",
+ " 19000.0 | \n",
+ " 100,0 | \n",
+ " 497,2 | \n",
+ " 2,22 | \n",
+ " 0 | \n",
+ " 97,78 | \n",
+ " 3 | \n",
+ " 8,71 | \n",
+ " 6,25 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 7
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df.info()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.038969Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.039284Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.067732Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.039242Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.066828Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "HIWfPm-TQnZE",
+ "outputId": "63fc4d2b-fab2-4fd7-ff31-33c50b49836b"
+ },
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\n",
+ "RangeIndex: 227 entries, 0 to 226\n",
+ "Data columns (total 20 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 Country 227 non-null object \n",
+ " 1 Region 227 non-null object \n",
+ " 2 Population 227 non-null int64 \n",
+ " 3 Area (sq. mi.) 227 non-null int64 \n",
+ " 4 Pop. Density (per sq. mi.) 227 non-null object \n",
+ " 5 Coastline (coast/area ratio) 227 non-null object \n",
+ " 6 Net migration 224 non-null object \n",
+ " 7 Infant mortality (per 1000 births) 224 non-null object \n",
+ " 8 GDP ($ per capita) 226 non-null float64\n",
+ " 9 Literacy (%) 209 non-null object \n",
+ " 10 Phones (per 1000) 223 non-null object \n",
+ " 11 Arable (%) 225 non-null object \n",
+ " 12 Crops (%) 225 non-null object \n",
+ " 13 Other (%) 225 non-null object \n",
+ " 14 Climate 205 non-null object \n",
+ " 15 Birthrate 224 non-null object \n",
+ " 16 Deathrate 223 non-null object \n",
+ " 17 Agriculture 212 non-null object \n",
+ " 18 Industry 211 non-null object \n",
+ " 19 Service 212 non-null object \n",
+ "dtypes: float64(1), int64(2), object(17)\n",
+ "memory usage: 35.6+ KB\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Dataset has 20 Columns with 227 Entries"
+ ],
+ "metadata": {
+ "id": "jC9mf5yUQnZE"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df.describe()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.070511Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.071281Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.100287Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.071227Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.099652Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 300
+ },
+ "id": "FpmDEU8pQnZF",
+ "outputId": "d1c0d069-835e-479f-e646-08ed7845a610"
+ },
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Population Area (sq. mi.) GDP ($ per capita)\n",
+ "count 2.270000e+02 2.270000e+02 226.000000\n",
+ "mean 2.874028e+07 5.982270e+05 9689.823009\n",
+ "std 1.178913e+08 1.790282e+06 10049.138513\n",
+ "min 7.026000e+03 2.000000e+00 500.000000\n",
+ "25% 4.376240e+05 4.647500e+03 1900.000000\n",
+ "50% 4.786994e+06 8.660000e+04 5550.000000\n",
+ "75% 1.749777e+07 4.418110e+05 15700.000000\n",
+ "max 1.313974e+09 1.707520e+07 55100.000000"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Population | \n",
+ " Area (sq. mi.) | \n",
+ " GDP ($ per capita) | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " count | \n",
+ " 2.270000e+02 | \n",
+ " 2.270000e+02 | \n",
+ " 226.000000 | \n",
+ "
\n",
+ " \n",
+ " mean | \n",
+ " 2.874028e+07 | \n",
+ " 5.982270e+05 | \n",
+ " 9689.823009 | \n",
+ "
\n",
+ " \n",
+ " std | \n",
+ " 1.178913e+08 | \n",
+ " 1.790282e+06 | \n",
+ " 10049.138513 | \n",
+ "
\n",
+ " \n",
+ " min | \n",
+ " 7.026000e+03 | \n",
+ " 2.000000e+00 | \n",
+ " 500.000000 | \n",
+ "
\n",
+ " \n",
+ " 25% | \n",
+ " 4.376240e+05 | \n",
+ " 4.647500e+03 | \n",
+ " 1900.000000 | \n",
+ "
\n",
+ " \n",
+ " 50% | \n",
+ " 4.786994e+06 | \n",
+ " 8.660000e+04 | \n",
+ " 5550.000000 | \n",
+ "
\n",
+ " \n",
+ " 75% | \n",
+ " 1.749777e+07 | \n",
+ " 4.418110e+05 | \n",
+ " 15700.000000 | \n",
+ "
\n",
+ " \n",
+ " max | \n",
+ " 1.313974e+09 | \n",
+ " 1.707520e+07 | \n",
+ " 55100.000000 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 9
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Only three columns are having proper numeric values. We can see in the previous table that most of the columns are having object as the datatype. This has to be changed."
+ ],
+ "metadata": {
+ "id": "Jr19pfNfQnZF"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "## Changing the Datatype\n",
+ "\n",
+ "for col in ['Country', 'Region']:\n",
+ " df[col] = df[col].astype('category')\n",
+ " \n",
+ "for col in ['Pop. Density (per sq. mi.)', 'Coastline (coast/area ratio)','Net migration','Infant mortality (per 1000 births)','Literacy (%)','Phones (per 1000)','Arable (%)','Crops (%)','Other (%)','Climate','Birthrate','Deathrate','Agriculture','Industry','Service']:\n",
+ " df[col] = df[col].astype('str')\n",
+ " df[col] = df[col].str.replace(\",\",\".\").astype(float) \n"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.101277Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.101851Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.129797Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.101817Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.128887Z"
+ },
+ "trusted": true,
+ "id": "BKfJQx-EQnZG"
+ },
+ "execution_count": 10,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Country and Region columns are converted to **Category** Datatype while rest of numeric data is converted to **float**. The category data type in pandas is a hybrid data type. It looks and behaves like a string in many instances but internally is represented by an array of integers. This allows the data to be sorted in a custom order and to more efficiently store the data."
+ ],
+ "metadata": {
+ "id": "X3eoaUP5QnZH"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df.info()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.130975Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.131186Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.152527Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.131160Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.151532Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "QsJmlMi1QnZI",
+ "outputId": "fab75aed-6dde-4005-8a01-915e4e1a3991"
+ },
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\n",
+ "RangeIndex: 227 entries, 0 to 226\n",
+ "Data columns (total 20 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 Country 227 non-null category\n",
+ " 1 Region 227 non-null category\n",
+ " 2 Population 227 non-null int64 \n",
+ " 3 Area (sq. mi.) 227 non-null int64 \n",
+ " 4 Pop. Density (per sq. mi.) 227 non-null float64 \n",
+ " 5 Coastline (coast/area ratio) 227 non-null float64 \n",
+ " 6 Net migration 224 non-null float64 \n",
+ " 7 Infant mortality (per 1000 births) 224 non-null float64 \n",
+ " 8 GDP ($ per capita) 226 non-null float64 \n",
+ " 9 Literacy (%) 209 non-null float64 \n",
+ " 10 Phones (per 1000) 223 non-null float64 \n",
+ " 11 Arable (%) 225 non-null float64 \n",
+ " 12 Crops (%) 225 non-null float64 \n",
+ " 13 Other (%) 225 non-null float64 \n",
+ " 14 Climate 205 non-null float64 \n",
+ " 15 Birthrate 224 non-null float64 \n",
+ " 16 Deathrate 223 non-null float64 \n",
+ " 17 Agriculture 212 non-null float64 \n",
+ " 18 Industry 211 non-null float64 \n",
+ " 19 Service 212 non-null float64 \n",
+ "dtypes: category(2), float64(16), int64(2)\n",
+ "memory usage: 43.0 KB\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df.describe()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.153826Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.154198Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.221684Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.154160Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.220748Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 416
+ },
+ "id": "PDw14IE8QnZI",
+ "outputId": "8e55d091-fe7b-4a0f-c2f4-b9acdba7b7de"
+ },
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Population Area (sq. mi.) Pop. Density (per sq. mi.) \\\n",
+ "count 2.270000e+02 2.270000e+02 227.000000 \n",
+ "mean 2.874028e+07 5.982270e+05 379.047137 \n",
+ "std 1.178913e+08 1.790282e+06 1660.185825 \n",
+ "min 7.026000e+03 2.000000e+00 0.000000 \n",
+ "25% 4.376240e+05 4.647500e+03 29.150000 \n",
+ "50% 4.786994e+06 8.660000e+04 78.800000 \n",
+ "75% 1.749777e+07 4.418110e+05 190.150000 \n",
+ "max 1.313974e+09 1.707520e+07 16271.500000 \n",
+ "\n",
+ " Coastline (coast/area ratio) Net migration \\\n",
+ "count 227.000000 224.000000 \n",
+ "mean 21.165330 0.038125 \n",
+ "std 72.286863 4.889269 \n",
+ "min 0.000000 -20.990000 \n",
+ "25% 0.100000 -0.927500 \n",
+ "50% 0.730000 0.000000 \n",
+ "75% 10.345000 0.997500 \n",
+ "max 870.660000 23.060000 \n",
+ "\n",
+ " Infant mortality (per 1000 births) GDP ($ per capita) Literacy (%) \\\n",
+ "count 224.000000 226.000000 209.000000 \n",
+ "mean 35.506964 9689.823009 82.838278 \n",
+ "std 35.389899 10049.138513 19.722173 \n",
+ "min 2.290000 500.000000 17.600000 \n",
+ "25% 8.150000 1900.000000 70.600000 \n",
+ "50% 21.000000 5550.000000 92.500000 \n",
+ "75% 55.705000 15700.000000 98.000000 \n",
+ "max 191.190000 55100.000000 100.000000 \n",
+ "\n",
+ " Phones (per 1000) Arable (%) Crops (%) Other (%) Climate \\\n",
+ "count 223.000000 225.000000 225.000000 225.000000 205.000000 \n",
+ "mean 236.061435 13.797111 4.564222 81.638311 2.139024 \n",
+ "std 227.991829 13.040402 8.361470 16.140835 0.699397 \n",
+ "min 0.200000 0.000000 0.000000 33.330000 1.000000 \n",
+ "25% 37.800000 3.220000 0.190000 71.650000 2.000000 \n",
+ "50% 176.200000 10.420000 1.030000 85.700000 2.000000 \n",
+ "75% 389.650000 20.000000 4.440000 95.440000 3.000000 \n",
+ "max 1035.600000 62.110000 50.680000 100.000000 4.000000 \n",
+ "\n",
+ " Birthrate Deathrate Agriculture Industry Service \n",
+ "count 224.000000 223.000000 212.000000 211.000000 212.000000 \n",
+ "mean 22.114732 9.241345 0.150844 0.282711 0.565283 \n",
+ "std 11.176716 4.990026 0.146798 0.138272 0.165841 \n",
+ "min 7.290000 2.290000 0.000000 0.020000 0.062000 \n",
+ "25% 12.672500 5.910000 0.037750 0.193000 0.429250 \n",
+ "50% 18.790000 7.840000 0.099000 0.272000 0.571000 \n",
+ "75% 29.820000 10.605000 0.221000 0.341000 0.678500 \n",
+ "max 50.730000 29.740000 0.769000 0.906000 0.954000 "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Population | \n",
+ " Area (sq. mi.) | \n",
+ " Pop. Density (per sq. mi.) | \n",
+ " Coastline (coast/area ratio) | \n",
+ " Net migration | \n",
+ " Infant mortality (per 1000 births) | \n",
+ " GDP ($ per capita) | \n",
+ " Literacy (%) | \n",
+ " Phones (per 1000) | \n",
+ " Arable (%) | \n",
+ " Crops (%) | \n",
+ " Other (%) | \n",
+ " Climate | \n",
+ " Birthrate | \n",
+ " Deathrate | \n",
+ " Agriculture | \n",
+ " Industry | \n",
+ " Service | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " count | \n",
+ " 2.270000e+02 | \n",
+ " 2.270000e+02 | \n",
+ " 227.000000 | \n",
+ " 227.000000 | \n",
+ " 224.000000 | \n",
+ " 224.000000 | \n",
+ " 226.000000 | \n",
+ " 209.000000 | \n",
+ " 223.000000 | \n",
+ " 225.000000 | \n",
+ " 225.000000 | \n",
+ " 225.000000 | \n",
+ " 205.000000 | \n",
+ " 224.000000 | \n",
+ " 223.000000 | \n",
+ " 212.000000 | \n",
+ " 211.000000 | \n",
+ " 212.000000 | \n",
+ "
\n",
+ " \n",
+ " mean | \n",
+ " 2.874028e+07 | \n",
+ " 5.982270e+05 | \n",
+ " 379.047137 | \n",
+ " 21.165330 | \n",
+ " 0.038125 | \n",
+ " 35.506964 | \n",
+ " 9689.823009 | \n",
+ " 82.838278 | \n",
+ " 236.061435 | \n",
+ " 13.797111 | \n",
+ " 4.564222 | \n",
+ " 81.638311 | \n",
+ " 2.139024 | \n",
+ " 22.114732 | \n",
+ " 9.241345 | \n",
+ " 0.150844 | \n",
+ " 0.282711 | \n",
+ " 0.565283 | \n",
+ "
\n",
+ " \n",
+ " std | \n",
+ " 1.178913e+08 | \n",
+ " 1.790282e+06 | \n",
+ " 1660.185825 | \n",
+ " 72.286863 | \n",
+ " 4.889269 | \n",
+ " 35.389899 | \n",
+ " 10049.138513 | \n",
+ " 19.722173 | \n",
+ " 227.991829 | \n",
+ " 13.040402 | \n",
+ " 8.361470 | \n",
+ " 16.140835 | \n",
+ " 0.699397 | \n",
+ " 11.176716 | \n",
+ " 4.990026 | \n",
+ " 0.146798 | \n",
+ " 0.138272 | \n",
+ " 0.165841 | \n",
+ "
\n",
+ " \n",
+ " min | \n",
+ " 7.026000e+03 | \n",
+ " 2.000000e+00 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " -20.990000 | \n",
+ " 2.290000 | \n",
+ " 500.000000 | \n",
+ " 17.600000 | \n",
+ " 0.200000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 33.330000 | \n",
+ " 1.000000 | \n",
+ " 7.290000 | \n",
+ " 2.290000 | \n",
+ " 0.000000 | \n",
+ " 0.020000 | \n",
+ " 0.062000 | \n",
+ "
\n",
+ " \n",
+ " 25% | \n",
+ " 4.376240e+05 | \n",
+ " 4.647500e+03 | \n",
+ " 29.150000 | \n",
+ " 0.100000 | \n",
+ " -0.927500 | \n",
+ " 8.150000 | \n",
+ " 1900.000000 | \n",
+ " 70.600000 | \n",
+ " 37.800000 | \n",
+ " 3.220000 | \n",
+ " 0.190000 | \n",
+ " 71.650000 | \n",
+ " 2.000000 | \n",
+ " 12.672500 | \n",
+ " 5.910000 | \n",
+ " 0.037750 | \n",
+ " 0.193000 | \n",
+ " 0.429250 | \n",
+ "
\n",
+ " \n",
+ " 50% | \n",
+ " 4.786994e+06 | \n",
+ " 8.660000e+04 | \n",
+ " 78.800000 | \n",
+ " 0.730000 | \n",
+ " 0.000000 | \n",
+ " 21.000000 | \n",
+ " 5550.000000 | \n",
+ " 92.500000 | \n",
+ " 176.200000 | \n",
+ " 10.420000 | \n",
+ " 1.030000 | \n",
+ " 85.700000 | \n",
+ " 2.000000 | \n",
+ " 18.790000 | \n",
+ " 7.840000 | \n",
+ " 0.099000 | \n",
+ " 0.272000 | \n",
+ " 0.571000 | \n",
+ "
\n",
+ " \n",
+ " 75% | \n",
+ " 1.749777e+07 | \n",
+ " 4.418110e+05 | \n",
+ " 190.150000 | \n",
+ " 10.345000 | \n",
+ " 0.997500 | \n",
+ " 55.705000 | \n",
+ " 15700.000000 | \n",
+ " 98.000000 | \n",
+ " 389.650000 | \n",
+ " 20.000000 | \n",
+ " 4.440000 | \n",
+ " 95.440000 | \n",
+ " 3.000000 | \n",
+ " 29.820000 | \n",
+ " 10.605000 | \n",
+ " 0.221000 | \n",
+ " 0.341000 | \n",
+ " 0.678500 | \n",
+ "
\n",
+ " \n",
+ " max | \n",
+ " 1.313974e+09 | \n",
+ " 1.707520e+07 | \n",
+ " 16271.500000 | \n",
+ " 870.660000 | \n",
+ " 23.060000 | \n",
+ " 191.190000 | \n",
+ " 55100.000000 | \n",
+ " 100.000000 | \n",
+ " 1035.600000 | \n",
+ " 62.110000 | \n",
+ " 50.680000 | \n",
+ " 100.000000 | \n",
+ " 4.000000 | \n",
+ " 50.730000 | \n",
+ " 29.740000 | \n",
+ " 0.769000 | \n",
+ " 0.906000 | \n",
+ " 0.954000 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 12
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Understanding more about the Dataset\n",
+ "\n",
+ "A few of the columns: Climate, Agriculture, Industry, and Service have not been explained exactly what they include as values. We need to understand it better."
+ ],
+ "metadata": {
+ "id": "00YKFeZ5QnZJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df.loc[:, ['Country', 'Region', 'Climate', 'Agriculture', 'Industry', 'Service']].head()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.222860Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.223080Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.239411Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.223054Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.238749Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 206
+ },
+ "id": "aunPcXB3QnZJ",
+ "outputId": "d5fe5ae8-17e3-4346-90d3-80bea8a78c36"
+ },
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Country Region Climate Agriculture \\\n",
+ "0 Afghanistan ASIA (EX. NEAR EAST) 1.0 0.380 \n",
+ "1 Albania EASTERN EUROPE 3.0 0.232 \n",
+ "2 Algeria NORTHERN AFRICA 1.0 0.101 \n",
+ "3 American Samoa OCEANIA 2.0 NaN \n",
+ "4 Andorra WESTERN EUROPE 3.0 NaN \n",
+ "\n",
+ " Industry Service \n",
+ "0 0.240 0.380 \n",
+ "1 0.188 0.579 \n",
+ "2 0.600 0.298 \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country | \n",
+ " Region | \n",
+ " Climate | \n",
+ " Agriculture | \n",
+ " Industry | \n",
+ " Service | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Afghanistan | \n",
+ " ASIA (EX. NEAR EAST) | \n",
+ " 1.0 | \n",
+ " 0.380 | \n",
+ " 0.240 | \n",
+ " 0.380 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Albania | \n",
+ " EASTERN EUROPE | \n",
+ " 3.0 | \n",
+ " 0.232 | \n",
+ " 0.188 | \n",
+ " 0.579 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Algeria | \n",
+ " NORTHERN AFRICA | \n",
+ " 1.0 | \n",
+ " 0.101 | \n",
+ " 0.600 | \n",
+ " 0.298 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " American Samoa | \n",
+ " OCEANIA | \n",
+ " 2.0 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Andorra | \n",
+ " WESTERN EUROPE | \n",
+ " 3.0 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 13
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "It looks like Agriculture , Industry and Service Columns represent the percent of Economy or GDP of a country that is being contributed by the respective economic activity. To understand Climate column, we can look at the distinct values and see which rows are coming together under the same value."
+ ],
+ "metadata": {
+ "id": "mduR9JRgQnZJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df['Climate'].unique()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.240940Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.241228Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.251925Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.241188Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.251127Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "JjHPpJVkQnZK",
+ "outputId": "7f3071b1-f2a3-4c5f-ab47-560d50297e20"
+ },
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "array([1. , 3. , 2. , nan, 4. , 1.5, 2.5])"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 14
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "h = {}\n",
+ "for cat in [1, 2, 3, 4, 1.5, 2.5]:\n",
+ " h[cat] = df.loc[:, ['Country', 'Region', 'Climate']][df['Climate'] == cat].head()\n",
+ "\n",
+ "pd.concat([h[1], h[2], h[3], h[4], h[1.5], h[2.5]])\n"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.255846Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.256369Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.290176Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.256323Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.289170Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 927
+ },
+ "id": "hpOmYJToQnZK",
+ "outputId": "3593c1c1-08b1-40f1-b49c-e870b319fea5"
+ },
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Country Region Climate\n",
+ "0 Afghanistan ASIA (EX. NEAR EAST) 1.0\n",
+ "2 Algeria NORTHERN AFRICA 1.0\n",
+ "11 Australia OCEANIA 1.0\n",
+ "13 Azerbaijan C.W. OF IND. STATES 1.0\n",
+ "15 Bahrain NEAR EAST 1.0\n",
+ "3 American Samoa OCEANIA 2.0\n",
+ "6 Anguilla LATIN AMER. & CARIB 2.0\n",
+ "7 Antigua & Barbuda LATIN AMER. & CARIB 2.0\n",
+ "10 Aruba LATIN AMER. & CARIB 2.0\n",
+ "14 Bahamas, The LATIN AMER. & CARIB 2.0\n",
+ "1 Albania EASTERN EUROPE 3.0\n",
+ "4 Andorra WESTERN EUROPE 3.0\n",
+ "8 Argentina LATIN AMER. & CARIB 3.0\n",
+ "12 Austria WESTERN EUROPE 3.0\n",
+ "19 Belgium WESTERN EUROPE 3.0\n",
+ "9 Armenia C.W. OF IND. STATES 4.0\n",
+ "18 Belarus C.W. OF IND. STATES 4.0\n",
+ "25 Bosnia & Herzegovina EASTERN EUROPE 4.0\n",
+ "69 France WESTERN EUROPE 4.0\n",
+ "106 Kazakhstan C.W. OF IND. STATES 4.0\n",
+ "24 Bolivia LATIN AMER. & CARIB 1.5\n",
+ "35 Cameroon SUB-SAHARAN AFRICA 1.5\n",
+ "42 China ASIA (EX. NEAR EAST) 1.5\n",
+ "63 Eritrea SUB-SAHARAN AFRICA 1.5\n",
+ "107 Kenya SUB-SAHARAN AFRICA 1.5\n",
+ "94 India ASIA (EX. NEAR EAST) 2.5\n",
+ "112 Kyrgyzstan C.W. OF IND. STATES 2.5\n",
+ "194 Swaziland SUB-SAHARAN AFRICA 2.5"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country | \n",
+ " Region | \n",
+ " Climate | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Afghanistan | \n",
+ " ASIA (EX. NEAR EAST) | \n",
+ " 1.0 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Algeria | \n",
+ " NORTHERN AFRICA | \n",
+ " 1.0 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " Australia | \n",
+ " OCEANIA | \n",
+ " 1.0 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " Azerbaijan | \n",
+ " C.W. OF IND. STATES | \n",
+ " 1.0 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " Bahrain | \n",
+ " NEAR EAST | \n",
+ " 1.0 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " American Samoa | \n",
+ " OCEANIA | \n",
+ " 2.0 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " Anguilla | \n",
+ " LATIN AMER. & CARIB | \n",
+ " 2.0 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " Antigua & Barbuda | \n",
+ " LATIN AMER. & CARIB | \n",
+ " 2.0 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " Aruba | \n",
+ " LATIN AMER. & CARIB | \n",
+ " 2.0 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " Bahamas, The | \n",
+ " LATIN AMER. & CARIB | \n",
+ " 2.0 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Albania | \n",
+ " EASTERN EUROPE | \n",
+ " 3.0 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Andorra | \n",
+ " WESTERN EUROPE | \n",
+ " 3.0 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " Argentina | \n",
+ " LATIN AMER. & CARIB | \n",
+ " 3.0 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " Austria | \n",
+ " WESTERN EUROPE | \n",
+ " 3.0 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " Belgium | \n",
+ " WESTERN EUROPE | \n",
+ " 3.0 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " Armenia | \n",
+ " C.W. OF IND. STATES | \n",
+ " 4.0 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " Belarus | \n",
+ " C.W. OF IND. STATES | \n",
+ " 4.0 | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " Bosnia & Herzegovina | \n",
+ " EASTERN EUROPE | \n",
+ " 4.0 | \n",
+ "
\n",
+ " \n",
+ " 69 | \n",
+ " France | \n",
+ " WESTERN EUROPE | \n",
+ " 4.0 | \n",
+ "
\n",
+ " \n",
+ " 106 | \n",
+ " Kazakhstan | \n",
+ " C.W. OF IND. STATES | \n",
+ " 4.0 | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " Bolivia | \n",
+ " LATIN AMER. & CARIB | \n",
+ " 1.5 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " Cameroon | \n",
+ " SUB-SAHARAN AFRICA | \n",
+ " 1.5 | \n",
+ "
\n",
+ " \n",
+ " 42 | \n",
+ " China | \n",
+ " ASIA (EX. NEAR EAST) | \n",
+ " 1.5 | \n",
+ "
\n",
+ " \n",
+ " 63 | \n",
+ " Eritrea | \n",
+ " SUB-SAHARAN AFRICA | \n",
+ " 1.5 | \n",
+ "
\n",
+ " \n",
+ " 107 | \n",
+ " Kenya | \n",
+ " SUB-SAHARAN AFRICA | \n",
+ " 1.5 | \n",
+ "
\n",
+ " \n",
+ " 94 | \n",
+ " India | \n",
+ " ASIA (EX. NEAR EAST) | \n",
+ " 2.5 | \n",
+ "
\n",
+ " \n",
+ " 112 | \n",
+ " Kyrgyzstan | \n",
+ " C.W. OF IND. STATES | \n",
+ " 2.5 | \n",
+ "
\n",
+ " \n",
+ " 194 | \n",
+ " Swaziland | \n",
+ " SUB-SAHARAN AFRICA | \n",
+ " 2.5 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 15
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "A guess for what the categories are pointing to is:\n",
+ "\n",
+ "**1** - Countries that are desert kind/hot. \\\n",
+ "**1.5** - Countries that are both hot and tropical. \\\n",
+ "**2** - Countries with a tropical climate.\\\n",
+ "**2.5** - Countries that are both cold and tropical.\\\n",
+ "**3** - Countries with cold Climate.\\\n",
+ "**4** - These countries also seem to have cold climate. Not mentioned why it is separated from Category 3. "
+ ],
+ "metadata": {
+ "id": "uE-3rWIWQnZK"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Data Cleaning"
+ ],
+ "metadata": {
+ "id": "KL4w-_-hQnZL"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "## Finding the Null Value in each Column Percentage\n",
+ "\n",
+ "num_missing = df.isnull().sum()\n",
+ "missing_value_df = pd.DataFrame({'Column_name': df.columns,'num_missing': num_missing})\n",
+ "missing_value_df"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.291298Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.291731Z",
+ "iopub.status.idle": "2022-03-25T10:07:36.308650Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.291688Z",
+ "shell.execute_reply": "2022-03-25T10:07:36.307891Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "DFYC9aYwQnZL",
+ "outputId": "2c53b4df-3f84-4b46-dd66-5818599e8a65"
+ },
+ "execution_count": 16,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Column_name \\\n",
+ "Country Country \n",
+ "Region Region \n",
+ "Population Population \n",
+ "Area (sq. mi.) Area (sq. mi.) \n",
+ "Pop. Density (per sq. mi.) Pop. Density (per sq. mi.) \n",
+ "Coastline (coast/area ratio) Coastline (coast/area ratio) \n",
+ "Net migration Net migration \n",
+ "Infant mortality (per 1000 births) Infant mortality (per 1000 births) \n",
+ "GDP ($ per capita) GDP ($ per capita) \n",
+ "Literacy (%) Literacy (%) \n",
+ "Phones (per 1000) Phones (per 1000) \n",
+ "Arable (%) Arable (%) \n",
+ "Crops (%) Crops (%) \n",
+ "Other (%) Other (%) \n",
+ "Climate Climate \n",
+ "Birthrate Birthrate \n",
+ "Deathrate Deathrate \n",
+ "Agriculture Agriculture \n",
+ "Industry Industry \n",
+ "Service Service \n",
+ "\n",
+ " num_missing \n",
+ "Country 0 \n",
+ "Region 0 \n",
+ "Population 0 \n",
+ "Area (sq. mi.) 0 \n",
+ "Pop. Density (per sq. mi.) 0 \n",
+ "Coastline (coast/area ratio) 0 \n",
+ "Net migration 3 \n",
+ "Infant mortality (per 1000 births) 3 \n",
+ "GDP ($ per capita) 1 \n",
+ "Literacy (%) 18 \n",
+ "Phones (per 1000) 4 \n",
+ "Arable (%) 2 \n",
+ "Crops (%) 2 \n",
+ "Other (%) 2 \n",
+ "Climate 22 \n",
+ "Birthrate 3 \n",
+ "Deathrate 4 \n",
+ "Agriculture 15 \n",
+ "Industry 16 \n",
+ "Service 15 "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Column_name | \n",
+ " num_missing | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Country | \n",
+ " Country | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " Region | \n",
+ " Region | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " Population | \n",
+ " Population | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " Area (sq. mi.) | \n",
+ " Area (sq. mi.) | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " Pop. Density (per sq. mi.) | \n",
+ " Pop. Density (per sq. mi.) | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " Coastline (coast/area ratio) | \n",
+ " Coastline (coast/area ratio) | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " Net migration | \n",
+ " Net migration | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " Infant mortality (per 1000 births) | \n",
+ " Infant mortality (per 1000 births) | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " GDP ($ per capita) | \n",
+ " GDP ($ per capita) | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " Literacy (%) | \n",
+ " Literacy (%) | \n",
+ " 18 | \n",
+ "
\n",
+ " \n",
+ " Phones (per 1000) | \n",
+ " Phones (per 1000) | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " Arable (%) | \n",
+ " Arable (%) | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " Crops (%) | \n",
+ " Crops (%) | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " Other (%) | \n",
+ " Other (%) | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " Climate | \n",
+ " Climate | \n",
+ " 22 | \n",
+ "
\n",
+ " \n",
+ " Birthrate | \n",
+ " Birthrate | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " Deathrate | \n",
+ " Deathrate | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " Agriculture | \n",
+ " Agriculture | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ " Industry | \n",
+ " Industry | \n",
+ " 16 | \n",
+ "
\n",
+ " \n",
+ " Service | \n",
+ " Service | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 16
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "There is a very little percentage of data in each column that is missing. We can view it in a heatmap to get a different visual analysis of it. "
+ ],
+ "metadata": {
+ "id": "EUqB-2Z2QnZL"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "sns.set(rc={'figure.figsize':(11,8)})\n",
+ "sns.heatmap(df.isnull()).set(title = 'Missing Data', xlabel = 'Columns', ylabel = 'Data Points')"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:36.309865Z",
+ "iopub.execute_input": "2022-03-25T10:07:36.310223Z",
+ "iopub.status.idle": "2022-03-25T10:07:37.158493Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:36.310193Z",
+ "shell.execute_reply": "2022-03-25T10:07:37.157512Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "g_b-0lKVQnZM",
+ "outputId": "8f7dcf59-b6d5-4208-e8a7-ae3cd746ca44"
+ },
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "[Text(75.5, 0.5, 'Data Points'),\n",
+ " Text(0.5, 48.5, 'Columns'),\n",
+ " Text(0.5, 1.0, 'Missing Data')]"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 17
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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Cp7pCV59LcmGDx+u3//+9+77EhISlJOTo+joaBOjBQAAXoEEz1i0JAO8gzdUdbzhOwCARKsyAABgIrM2WRy9u78h43b413pDxm0s0zdZAAAAoGmZPkULAADQ7FiDBwAA4F28fRetJaZo33//fd17770aPHiwRowYoeLiYklSUVGRhg0bpkGDBmnYsGHat2+fuYECAAC0AKYneN98842mTp2qOXPmKC8vT7/85S/drcnS0tKUkpKigoICpaSkaMaMGeYGCwAAvILLacyrMTwtZK1evVqDBw9WUlKSBg8erKNHj150bNMTvP3796tDh0VplUAAACAASURBVA66+uqrJUn9+/fXhx9+qPLycm3fvl1JSUmSpKSkJG3fvl0VFRVmhgsAANAkPClk/fe//1V2drb+8pe/KD8/X2+88Ybatm170bFNT/CuvvpqHT16VF988YUkKS8vT5JUUlKi8PBw+fr6SpJ8fX3VqVMnlZSUmBYrAADwDmZX8DwtZP31r3/VI488oo4dO0qS2rZtq4CAgIuOb/omi7Zt2+pPf/qTZs2apdOnT+v2229XcHCwTp48aXZoAADAW7lshgx7/PhxHT9+/ILrwcHBCg4Odr9vqJAVFhbmvq+wsFCRkZEaPny4Tp48qTvvvFO/+93v3M0h6mN6gidJP/nJT/STn/xEknT06FG98sor6tq1qw4fPiyHwyFfX185HA6VlZUpIiLC5GgBAADq9uqrryo7O/uC6+PGjdP48eMbPZ7D4dCuXbu0ZMkS1dTUaNSoUerSpYuGDh3a4M9ZIsE7cuSIOnbsKKfTqTlz5uiBBx5Q165dFRsbq/z8fCUnJys/P1+xsbG1sloAAIBLYdQxKQ899JDuvffeC66fX72TpIiICI8KWV26dNFdd90lf39/+fv7KzExUV988UXLSPDmzp2rTz/9VN99951++tOfavLkyZKk9PR0paamasGCBQoODpbdbjc5UgAAgPp9fyq2Pu3bt/eokJWUlKT169crOTlZZ86c0ccff6xBgwZddHx60QIAANOY1Yu25NafGTJuxIfrPL63sLBQqampOn78uLuQ1bNnT40ePVoTJkzQTTfdJKfTKbvdrg8++EA+Pj669dZbNXXqVPn4NLxPlgQPAACY5kpO8IxkiSlaAACA5uTtrcoskeC9//77mjdvns6cOaN27dpp1qxZ6tat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\n"
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "It is seen that there are significantly low values of **NULL** in some of the columns : **{\"Net Migration\", \"Infant Mortality\", \"GDP\", \"Literacy\", \"Phones\", \"Arable\", \"Crops\", \"Other\", \"Climate\", \"Birthrate\", \"Deathrate\", \"Agriculture\", \"Industry\", \"Service\"}**. The Rows with these values can be dealt with later for now."
+ ],
+ "metadata": {
+ "id": "c_hKZIUZQnZM"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "## Checking Rows in which null values are present for each column\n",
+ "\n",
+ "df1 = df[df['Net migration'].isna()]\n",
+ "df1"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:37.159805Z",
+ "iopub.execute_input": "2022-03-25T10:07:37.160098Z",
+ "iopub.status.idle": "2022-03-25T10:07:37.186207Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:37.160053Z",
+ "shell.execute_reply": "2022-03-25T10:07:37.185533Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "m_Tfl06OQnZM",
+ "outputId": "b7e777ed-0a4a-4bae-a919-c3761700a28f"
+ },
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " Country Region Population \\\n",
+ "47 Cook Islands OCEANIA 21388 \n",
+ "221 Wallis and Futuna OCEANIA 16025 \n",
+ "223 Western Sahara NORTHERN AFRICA 273008 \n",
+ "\n",
+ " Area (sq. mi.) Pop. Density (per sq. mi.) Coastline (coast/area ratio) \\\n",
+ "47 240 89.1 50.00 \n",
+ "221 274 58.5 47.08 \n",
+ "223 266000 1.0 0.42 \n",
+ "\n",
+ " Net migration Infant mortality (per 1000 births) GDP ($ per capita) \\\n",
+ "47 NaN NaN 5000.0 \n",
+ "221 NaN NaN 3700.0 \n",
+ "223 NaN NaN NaN \n",
+ "\n",
+ " Literacy (%) Phones (per 1000) Arable (%) Crops (%) Other (%) \\\n",
+ "47 95.0 289.9 17.39 13.04 69.57 \n",
+ "221 50.0 118.6 5.00 25.00 70.00 \n",
+ "223 NaN NaN 0.02 0.00 99.98 \n",
+ "\n",
+ " Climate Birthrate Deathrate Agriculture Industry Service \n",
+ "47 2.0 21.0 NaN 0.151 0.096 0.753 \n",
+ "221 2.0 NaN NaN NaN NaN NaN \n",
+ "223 1.0 NaN NaN NaN NaN 0.400 "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country | \n",
+ " Region | \n",
+ " Population | \n",
+ " Area (sq. mi.) | \n",
+ " Pop. Density (per sq. mi.) | \n",
+ " Coastline (coast/area ratio) | \n",
+ " Net migration | \n",
+ " Infant mortality (per 1000 births) | \n",
+ " GDP ($ per capita) | \n",
+ " Literacy (%) | \n",
+ " Phones (per 1000) | \n",
+ " Arable (%) | \n",
+ " Crops (%) | \n",
+ " Other (%) | \n",
+ " Climate | \n",
+ " Birthrate | \n",
+ " Deathrate | \n",
+ " Agriculture | \n",
+ " Industry | \n",
+ " Service | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 47 | \n",
+ " Cook Islands | \n",
+ " OCEANIA | \n",
+ " 21388 | \n",
+ " 240 | \n",
+ " 89.1 | \n",
+ " 50.00 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 5000.0 | \n",
+ " 95.0 | \n",
+ " 289.9 | \n",
+ " 17.39 | \n",
+ " 13.04 | \n",
+ " 69.57 | \n",
+ " 2.0 | \n",
+ " 21.0 | \n",
+ " NaN | \n",
+ " 0.151 | \n",
+ " 0.096 | \n",
+ " 0.753 | \n",
+ "
\n",
+ " \n",
+ " 221 | \n",
+ " Wallis and Futuna | \n",
+ " OCEANIA | \n",
+ " 16025 | \n",
+ " 274 | \n",
+ " 58.5 | \n",
+ " 47.08 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 3700.0 | \n",
+ " 50.0 | \n",
+ " 118.6 | \n",
+ " 5.00 | \n",
+ " 25.00 | \n",
+ " 70.00 | \n",
+ " 2.0 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 223 | \n",
+ " Western Sahara | \n",
+ " NORTHERN AFRICA | \n",
+ " 273008 | \n",
+ " 266000 | \n",
+ " 1.0 | \n",
+ " 0.42 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 0.02 | \n",
+ " 0.00 | \n",
+ " 99.98 | \n",
+ " 1.0 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 0.400 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ "
\n",
+ "
\n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Changes suggested for these Rows with NaN values\n",
+ "\n",
+ "| Feature | Number of missing Values | Change |\n",
+ "|:----------|:-------------:|------:|\n",
+ "| Net migration | 3 | Belong to very small nations. Change to 0.|\n",
+ "| Infant mortality (per 1000 births) | 3 |Belong to very small nations. Change to 0. |\n",
+ "| GDP ($ per capita) | 1| From Google search, it is \\$2500. Change to same.|\n",
+ "|Literacy (\\%)|18| Replace by the mean literacy of each missing value's region|\n",
+ "|Phones (per 1000)|4|Replace by the mean phones of each missing value's region|\n",
+ "|Arable (\\%)|2|Very small islands.Change to 0.|\n",
+ "|Crops (\\%)|2|Very small islands.Change to 0.|\n",
+ "|Other (\\%)|2|Very small islands.Change to 0.|\n",
+ "|Climate|22|Change to 0. It represents \"unknown\" category.|\n",
+ "|Birthrate|3|Replace with their region's mean rates|\n",
+ "|Deathrate|4|Replace with their region's mean rates|\n",
+ "|Agriculture|15|Calculated guess seeing how similar countries have. Change to 0.15.|\n",
+ "|Industry|16|Calculated guess seeing how similar countries have. Change to 0.05.|\n",
+ "|Service|15|Calculated guess seeing how similar countries have. Change to 0.8.|"
+ ],
+ "metadata": {
+ "id": "KIwkWZlkQnZN"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "change1 = [(\"Net migration\", 0), (\"Infant mortality (per 1000 births)\", 0), (\"GDP ($ per capita)\", 2500), (\"Arable (%)\", 0), (\"Crops (%)\", 0),(\"Other (%)\",0),(\"Climate\",0),(\"Agriculture\",0.15), (\"Industry\", 0.05), (\"Service\", 0.8) ]\n",
+ "for col in change1:\n",
+ " df[col[0]].fillna(col[1], inplace = True)\n",
+ " \n",
+ "change2 = [\"Literacy (%)\", \"Phones (per 1000)\", \"Birthrate\", \"Deathrate\"]\n",
+ "for col in change2:\n",
+ " df[col].fillna(df.groupby('Region')[col].transform('mean'), inplace= True)"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:37.187108Z",
+ "iopub.execute_input": "2022-03-25T10:07:37.187834Z",
+ "iopub.status.idle": "2022-03-25T10:07:37.204185Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:37.187799Z",
+ "shell.execute_reply": "2022-03-25T10:07:37.203144Z"
+ },
+ "trusted": true,
+ "id": "g2rkTMIVQnZN"
+ },
+ "execution_count": 19,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "print(df.isnull().sum())"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:37.205429Z",
+ "iopub.execute_input": "2022-03-25T10:07:37.205705Z",
+ "iopub.status.idle": "2022-03-25T10:07:37.224130Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:37.205675Z",
+ "shell.execute_reply": "2022-03-25T10:07:37.223285Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ofaOxZUhQnZN",
+ "outputId": "3c20e99a-8bab-4f4d-f4fd-2dd7d275e0dd"
+ },
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Country 0\n",
+ "Region 0\n",
+ "Population 0\n",
+ "Area (sq. mi.) 0\n",
+ "Pop. Density (per sq. mi.) 0\n",
+ "Coastline (coast/area ratio) 0\n",
+ "Net migration 0\n",
+ "Infant mortality (per 1000 births) 0\n",
+ "GDP ($ per capita) 0\n",
+ "Literacy (%) 0\n",
+ "Phones (per 1000) 0\n",
+ "Arable (%) 0\n",
+ "Crops (%) 0\n",
+ "Other (%) 0\n",
+ "Climate 0\n",
+ "Birthrate 0\n",
+ "Deathrate 0\n",
+ "Agriculture 0\n",
+ "Industry 0\n",
+ "Service 0\n",
+ "dtype: int64\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# EDA\n",
+ "## Correlation Heatmap"
+ ],
+ "metadata": {
+ "id": "Wt5V1BZjQnZN"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "fig, ax = plt.subplots(figsize=(16,16)) \n",
+ "sns.heatmap(df.corr(), annot=True, ax=ax, cmap='Spectral').set(\n",
+ " title = 'Feature Correlation', xlabel = 'Columns', ylabel = 'Columns')\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "execution": {
+ "iopub.status.busy": "2022-03-25T10:07:37.225370Z",
+ "iopub.execute_input": "2022-03-25T10:07:37.225644Z",
+ "iopub.status.idle": "2022-03-25T10:07:38.955709Z",
+ "shell.execute_reply.started": "2022-03-25T10:07:37.225612Z",
+ "shell.execute_reply": "2022-03-25T10:07:38.954764Z"
+ },
+ "trusted": true,
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "id": "1FllGHxmQnZN",
+ "outputId": "9371de64-d9ac-46d4-9a01-50ca7378920a"
+ },
+ "execution_count": 21,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "