From adfd72f89b0c18f53003028739f4353256e5792b Mon Sep 17 00:00:00 2001 From: hbshrestha Date: Sat, 14 Nov 2020 22:13:31 +0100 Subject: [PATCH] practising github added some examples on pandas_pivot_table.ipynb --- ...nvert normal Distribution-checkpoint.ipynb | 217 +++ .../Pandas Apply-checkpoint.ipynb | 139 ++ .../column_transformer-checkpoint.ipynb | 287 ++++ ...itional_selection_of_rows-checkpoint.ipynb | 1449 +++++++++++++++++ ...vert_string_to_characters-checkpoint.ipynb | 73 + .../pandas_pivot_table-checkpoint.ipynb | 396 +++++ Code/Convert normal Distribution.ipynb | 2 +- Code/Pandas Apply.ipynb | 2 +- Code/column_transformer.ipynb | 2 +- Code/conditional_selection_of_rows.ipynb | 2 +- Code/convert_string_to_characters.ipynb | 2 +- Code/pandas_pivot_table.ipynb | 302 +++- 12 files changed, 2865 insertions(+), 8 deletions(-) create mode 100644 Code/.ipynb_checkpoints/Convert normal Distribution-checkpoint.ipynb create mode 100644 Code/.ipynb_checkpoints/Pandas Apply-checkpoint.ipynb create mode 100644 Code/.ipynb_checkpoints/column_transformer-checkpoint.ipynb create mode 100644 Code/.ipynb_checkpoints/conditional_selection_of_rows-checkpoint.ipynb create mode 100644 Code/.ipynb_checkpoints/convert_string_to_characters-checkpoint.ipynb create mode 100644 Code/.ipynb_checkpoints/pandas_pivot_table-checkpoint.ipynb diff --git a/Code/.ipynb_checkpoints/Convert normal Distribution-checkpoint.ipynb b/Code/.ipynb_checkpoints/Convert normal Distribution-checkpoint.ipynb new file mode 100644 index 0000000..1d07724 --- /dev/null +++ b/Code/.ipynb_checkpoints/Convert normal Distribution-checkpoint.ipynb @@ -0,0 +1,217 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Vn5QNv4O06e4" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "SFSvcRiK1lS8" + }, + "outputs": [], + "source": [ + "#Exponential distribution\n", + "X = np.random.exponential(2, (10000,1))\n", + "\n", + "#Log Normal distribution\n", + "Y = np.random.weibull(a = 2, size = (10000,1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Plot Exponential and weibull distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 475 + }, + "colab_type": "code", + "id": "eZvP25Z81zJb", + "outputId": "e9c4e0a0-3d2a-4648-9745-ac3c2fa1c1d7" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'weibull distribution')" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize = (10,4), dpi = 120)\n", + "\n", + "#Plotting exponential distribution\n", + "plt.subplot(121)\n", + "plt.hist(X, bins = 100)\n", + "plt.title(\"exponential distribution\")\n", + "\n", + "#plotting weibull distribution\n", + "plt.subplot(122)\n", + "plt.hist(Y, bins = 100)\n", + "plt.title(\"weibull distribution\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "id": "nUBi3DZU13eZ", + "outputId": "bdbba736-5dd4-4291-bc8f-5eeb1e6b116a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "distributions transformed\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import QuantileTransformer\n", + "qt = QuantileTransformer(n_quantiles = len(X), output_distribution = 'normal')\n", + "\n", + "## transforming above distributions to Normal distribution ##\n", + "X = qt.fit_transform(X)\n", + "Y = qt.fit_transform(Y)\n", + "print('distributions transformed')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Plot transformed distributions" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 475 + }, + "colab_type": "code", + "id": "sNs0JPUo4pqM", + "outputId": "e5c88ecd-cad5-457a-fe74-6c72ac233dac" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'transformed weibull')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize = (10,4), dpi = 120)\n", + "\n", + "#Plotting transformed exponential\n", + "plt.subplot(121)\n", + "plt.hist(X, bins = 100)\n", + "plt.title(\"transformed exponential\")\n", + "\n", + "#plotting transformed weibull\n", + "plt.subplot(122)\n", + "plt.hist(Y, bins = 100)\n", + "plt.title(\"transformed weibull\")" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "5_XYuuCaFtAI" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "name": "AV hack of day.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/Code/.ipynb_checkpoints/Pandas Apply-checkpoint.ipynb b/Code/.ipynb_checkpoints/Pandas Apply-checkpoint.ipynb new file mode 100644 index 0000000..00874a9 --- /dev/null +++ b/Code/.ipynb_checkpoints/Pandas Apply-checkpoint.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pandas Apply" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import pandas\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#Import dataset\n", + "loan = pd.read_csv('../Data/loan_train.csv', index_col = 'Loan_ID')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Define function\n", + "def missing(x):\n", + " return sum(x.isnull())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Missing values per column\n" + ] + }, + { + "data": { + "text/plain": [ + "Gender 13\n", + "Married 3\n", + "Dependents 15\n", + "Education 0\n", + "Self_Employed 32\n", + "dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Apply per column\n", + "print('Missing values per column')\n", + "loan.apply(missing, axis = 0).head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Missing values per row\n" + ] + }, + { + "data": { + "text/plain": [ + "Loan_ID\n", + "LP001002 1\n", + "LP001003 0\n", + "LP001005 0\n", + "LP001006 0\n", + "LP001008 0\n", + "dtype: int64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Apply per row\n", + "print('Missing values per row')\n", + "loan.apply(missing, axis = 1).head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Code/.ipynb_checkpoints/column_transformer-checkpoint.ipynb b/Code/.ipynb_checkpoints/column_transformer-checkpoint.ipynb new file mode 100644 index 0000000..ec7b02b --- /dev/null +++ b/Code/.ipynb_checkpoints/column_transformer-checkpoint.ipynb @@ -0,0 +1,287 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sklearn ColumnTransformer" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.compose import ColumnTransformer" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Loan_IDGenderMarriedDependentsEducationSelf_EmployedApplicantIncomeCoapplicantIncomeLoanAmountLoan_Amount_TermCredit_HistoryProperty_AreaLoan_Status
0LP001002MaleNo0GraduateNo58490.0NaN360.01.0UrbanY
1LP001003MaleYes1GraduateNo45831508.0128.0360.01.0RuralN
2LP001005MaleYes0GraduateYes30000.066.0360.01.0UrbanY
3LP001006MaleYes0Not GraduateNo25832358.0120.0360.01.0UrbanY
4LP001008MaleNo0GraduateNo60000.0141.0360.01.0UrbanY
\n", + "
" + ], + "text/plain": [ + " Loan_ID Gender Married Dependents Education Self_Employed \\\n", + "0 LP001002 Male No 0 Graduate No \n", + "1 LP001003 Male Yes 1 Graduate No \n", + "2 LP001005 Male Yes 0 Graduate Yes \n", + "3 LP001006 Male Yes 0 Not Graduate No \n", + "4 LP001008 Male No 0 Graduate No \n", + "\n", + " ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n", + "0 5849 0.0 NaN 360.0 \n", + "1 4583 1508.0 128.0 360.0 \n", + "2 3000 0.0 66.0 360.0 \n", + "3 2583 2358.0 120.0 360.0 \n", + "4 6000 0.0 141.0 360.0 \n", + "\n", + " Credit_History Property_Area Loan_Status \n", + "0 1.0 Urban Y \n", + "1 1.0 Rural N \n", + "2 1.0 Urban Y \n", + "3 1.0 Urban Y \n", + "4 1.0 Urban Y " + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# import dataset\n", + "data = pd.read_csv('../Data/loan_train.csv')\n", + "data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "# rows having null values removed for simplicity purpose\n", + "data.dropna(inplace = True)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "# Dependent and independent variables\n", + "X = data.drop('Loan_Status', axis = 1)\n", + "y = data['Loan_Status']" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "# Apply StandardScalar transformation to numeric features\n", + "# Apply OneHotEncoder transformation to categorical features\n", + "\n", + "from sklearn.preprocessing import StandardScaler, OneHotEncoder\n", + "\n", + "transformers = [(\"num\", StandardScaler(), ['ApplicantIncome', 'CoapplicantIncome', 'LoanAmount']),\n", + " (\"cat\", OneHotEncoder(handle_unknown='ignore'), ['Gender', 'Married', 'Self_Employed', 'Property_Area'])]\n", + "\n", + "transformer = ColumnTransformer(transformers = transformers)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ram\\Anaconda3\\lib\\site-packages\\sklearn\\preprocessing\\data.py:625: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n", + " return self.partial_fit(X, y)\n", + "C:\\Users\\ram\\Anaconda3\\lib\\site-packages\\sklearn\\base.py:462: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n", + " return self.fit(X, **fit_params).transform(X)\n" + ] + }, + { + "data": { + "text/plain": [ + "array([-0.13796959, -0.02795204, -0.20808917, 0. , 1. ,\n", + " 0. , 1. , 1. , 0. , 1. ,\n", + " 0. , 0. ])" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = transformer.fit_transform(X)\n", + "X[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Code/.ipynb_checkpoints/conditional_selection_of_rows-checkpoint.ipynb b/Code/.ipynb_checkpoints/conditional_selection_of_rows-checkpoint.ipynb new file mode 100644 index 0000000..474e1f5 --- /dev/null +++ b/Code/.ipynb_checkpoints/conditional_selection_of_rows-checkpoint.ipynb @@ -0,0 +1,1449 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Select rows in a DataFrame based on column values" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.read_csv('../Data/loan_train.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Loan_IDGenderMarriedDependentsEducationSelf_EmployedApplicantIncomeCoapplicantIncomeLoanAmountLoan_Amount_TermCredit_HistoryProperty_AreaLoan_Status
0LP001002MaleNo0GraduateNo58490.0NaN360.01.0UrbanY
1LP001003MaleYes1GraduateNo45831508.0128.0360.01.0RuralN
2LP001005MaleYes0GraduateYes30000.066.0360.01.0UrbanY
3LP001006MaleYes0Not GraduateNo25832358.0120.0360.01.0UrbanY
4LP001008MaleNo0GraduateNo60000.0141.0360.01.0UrbanY
\n", + "
" + ], + "text/plain": [ + " Loan_ID Gender Married Dependents Education Self_Employed \\\n", + "0 LP001002 Male No 0 Graduate No \n", + "1 LP001003 Male Yes 1 Graduate No \n", + "2 LP001005 Male Yes 0 Graduate Yes \n", + "3 LP001006 Male Yes 0 Not Graduate No \n", + "4 LP001008 Male No 0 Graduate No \n", + "\n", + " ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n", + "0 5849 0.0 NaN 360.0 \n", + "1 4583 1508.0 128.0 360.0 \n", + "2 3000 0.0 66.0 360.0 \n", + "3 2583 2358.0 120.0 360.0 \n", + "4 6000 0.0 141.0 360.0 \n", + "\n", + " Credit_History Property_Area Loan_Status \n", + "0 1.0 Urban Y \n", + "1 1.0 Rural N \n", + "2 1.0 Urban Y \n", + "3 1.0 Urban Y \n", + "4 1.0 Urban Y " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "data2 = data.loc[(data['Education'] == 'Not Graduate') & (data['ApplicantIncome'] <= 5400)]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Loan_IDGenderMarriedDependentsEducationSelf_EmployedApplicantIncomeCoapplicantIncomeLoanAmountLoan_Amount_TermCredit_HistoryProperty_AreaLoan_Status
3LP001006MaleYes0Not GraduateNo25832358.0120.0360.01.0UrbanY
6LP001013MaleYes0Not GraduateNo23331516.095.0360.01.0UrbanY
16LP001034MaleNo1Not GraduateNo35960.0100.0240.0NaNUrbanY
18LP001038MaleYes0Not GraduateNo48870.0133.0360.01.0RuralN
22LP001047MaleYes0Not GraduateNo26001911.0116.0360.00.0SemiurbanN
23LP001050NaNYes2Not GraduateNo33651917.0112.0360.00.0RuralN
27LP001073MaleYes2Not GraduateNo42261040.0110.0360.01.0UrbanY
28LP001086MaleNo0Not GraduateNo14420.035.0360.01.0UrbanN
39LP001116MaleNo0Not GraduateNo37481668.0110.0360.01.0SemiurbanY
44LP001136MaleYes0Not GraduateYes46950.096.0NaN1.0UrbanY
50LP001155FemaleYes0Not GraduateNo19281644.0100.0360.01.0SemiurbanY
59LP001199MaleYes2Not GraduateNo33572859.0144.0360.01.0UrbanY
62LP001207MaleYes0Not GraduateYes26093449.0165.0180.00.0RuralN
66LP001228MaleNo0Not GraduateNo32002254.0126.0180.00.0UrbanN
71LP001245MaleYes2Not GraduateYes18751875.097.0360.01.0SemiurbanY
73LP001250MaleYes3+Not GraduateNo47550.095.0NaN0.0SemiurbanN
79LP001264MaleYes3+Not GraduateYes33332166.0130.0360.0NaNSemiurbanY
86LP001280MaleYes2Not GraduateNo33332000.099.0360.0NaNSemiurbanY
92LP001319MaleYes2Not GraduateNo32731820.081.0360.01.0UrbanY
94LP001325MaleNo0Not GraduateNo36200.025.0120.01.0SemiurbanY
98LP001334MaleYes0Not GraduateNo41880.0115.0180.01.0SemiurbanY
100LP001345MaleYes2Not GraduateNo42883263.0133.0180.01.0UrbanY
109LP001384MaleYes3+Not GraduateNo2071754.094.0480.01.0SemiurbanY
112LP001391MaleYes0Not GraduateNo35724114.0152.0NaN0.0RuralN
124LP001439MaleYes0Not GraduateNo43002014.0194.0360.01.0RuralY
139LP001493MaleYes2Not GraduateNo42001430.0129.0360.01.0RuralN
153LP001532MaleYes2Not GraduateNo22810.0113.0360.01.0RuralN
160LP001560MaleYes0Not GraduateNo18631041.098.0360.01.0SemiurbanY
170LP001581MaleYes0Not GraduateNaN18201769.095.0360.01.0RuralY
172LP001586MaleYes3+Not GraduateNo35220.081.0180.01.0RuralN
..........................................
471LP002517MaleYes1Not GraduateNo26531500.0113.0180.00.0RuralN
480LP002534FemaleNo0Not GraduateNo43500.0154.0360.01.0RuralY
481LP002536MaleYes3+Not GraduateNo30950.0113.0360.01.0RuralY
485LP002544MaleYes1Not GraduateNo19582436.0131.0360.01.0RuralY
490LP002560MaleNo0Not GraduateNo26992785.096.0360.0NaNSemiurbanY
491LP002562MaleYes1Not GraduateNo53331131.0186.0360.0NaNUrbanY
492LP002571MaleNo0Not GraduateNo36910.0110.0360.01.0RuralY
496LP002587MaleYes0Not GraduateNo26001700.0107.0360.01.0RuralY
503LP002618MaleYes1Not GraduateNo40505302.0138.0360.0NaNRuralN
504LP002619MaleYes0Not GraduateNo38141483.0124.0300.01.0SemiurbanY
510LP002637MaleNo0Not GraduateNo35981287.0100.0360.01.0RuralN
517LP002682MaleYesNaNNot GraduateNo30741800.0123.0360.00.0SemiurbanN
519LP002684FemaleNo0Not GraduateNo34000.095.0360.01.0RuralN
520LP002689MaleYes2Not GraduateNo21921742.045.0360.01.0SemiurbanY
527LP002706MaleYes1Not GraduateNo52851430.0161.0360.00.0SemiurbanY
528LP002714MaleNo1Not GraduateNo26791302.094.0360.01.0SemiurbanY
535LP002732MaleNo0Not GraduateNaN25502042.0126.0360.01.0RuralY
538LP002739MaleYes0Not GraduateNo2917536.066.0360.01.0RuralN
543LP002755MaleYes1Not GraduateNo22392524.0128.0360.01.0UrbanY
544LP002757FemaleYes0Not GraduateNo3017663.0102.0360.0NaNSemiurbanY
546LP002768MaleNo0Not GraduateNo33580.080.036.01.0SemiurbanN
551LP002784MaleYes1Not GraduateNo24922375.0NaN360.01.0RuralY
553LP002788MaleYes0Not GraduateNo24542333.0181.0360.00.0UrbanN
560LP002807MaleYes2Not GraduateNo3675242.0108.0360.01.0SemiurbanY
565LP002833MaleYes0Not GraduateNo44670.0120.0360.0NaNRuralY
587LP002917FemaleNo0Not GraduateNo21650.070.0360.01.0SemiurbanY
595LP002940MaleNo0Not GraduateNo38330.0110.0360.01.0RuralY
601LP002950MaleYes0Not GraduateNaN28942792.0155.0360.01.0RuralY
605LP002960MaleYes0Not GraduateNo24003800.0NaN180.01.0UrbanN
607LP002964MaleYes2Not GraduateNo39871411.0157.0360.01.0RuralY
\n", + "

117 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " Loan_ID Gender Married Dependents Education Self_Employed \\\n", + "3 LP001006 Male Yes 0 Not Graduate No \n", + "6 LP001013 Male Yes 0 Not Graduate No \n", + "16 LP001034 Male No 1 Not Graduate No \n", + "18 LP001038 Male Yes 0 Not Graduate No \n", + "22 LP001047 Male Yes 0 Not Graduate No \n", + "23 LP001050 NaN Yes 2 Not Graduate No \n", + "27 LP001073 Male Yes 2 Not Graduate No \n", + "28 LP001086 Male No 0 Not Graduate No \n", + "39 LP001116 Male No 0 Not Graduate No \n", + "44 LP001136 Male Yes 0 Not Graduate Yes \n", + "50 LP001155 Female Yes 0 Not Graduate No \n", + "59 LP001199 Male Yes 2 Not Graduate No \n", + "62 LP001207 Male Yes 0 Not Graduate Yes \n", + "66 LP001228 Male No 0 Not Graduate No \n", + "71 LP001245 Male Yes 2 Not Graduate Yes \n", + "73 LP001250 Male Yes 3+ Not Graduate No \n", + "79 LP001264 Male Yes 3+ Not Graduate Yes \n", + "86 LP001280 Male Yes 2 Not Graduate No \n", + "92 LP001319 Male Yes 2 Not Graduate No \n", + "94 LP001325 Male No 0 Not Graduate No \n", + "98 LP001334 Male Yes 0 Not Graduate No \n", + "100 LP001345 Male Yes 2 Not Graduate No \n", + "109 LP001384 Male Yes 3+ Not Graduate No \n", + "112 LP001391 Male Yes 0 Not Graduate No \n", + "124 LP001439 Male Yes 0 Not Graduate No \n", + "139 LP001493 Male Yes 2 Not Graduate No \n", + "153 LP001532 Male Yes 2 Not Graduate No \n", + "160 LP001560 Male Yes 0 Not Graduate No \n", + "170 LP001581 Male Yes 0 Not Graduate NaN \n", + "172 LP001586 Male Yes 3+ Not Graduate No \n", + ".. ... ... ... ... ... ... \n", + "471 LP002517 Male Yes 1 Not Graduate No \n", + "480 LP002534 Female No 0 Not Graduate No \n", + "481 LP002536 Male Yes 3+ Not Graduate No \n", + "485 LP002544 Male Yes 1 Not Graduate No \n", + "490 LP002560 Male No 0 Not Graduate No \n", + "491 LP002562 Male Yes 1 Not Graduate No \n", + "492 LP002571 Male No 0 Not Graduate No \n", + "496 LP002587 Male Yes 0 Not Graduate No \n", + "503 LP002618 Male Yes 1 Not Graduate No \n", + "504 LP002619 Male Yes 0 Not Graduate No \n", + "510 LP002637 Male No 0 Not Graduate No \n", + "517 LP002682 Male Yes NaN Not Graduate No \n", + "519 LP002684 Female No 0 Not Graduate No \n", + "520 LP002689 Male Yes 2 Not Graduate No \n", + "527 LP002706 Male Yes 1 Not Graduate No \n", + "528 LP002714 Male No 1 Not Graduate No \n", + "535 LP002732 Male No 0 Not Graduate NaN \n", + "538 LP002739 Male Yes 0 Not Graduate No \n", + "543 LP002755 Male Yes 1 Not Graduate No \n", + "544 LP002757 Female Yes 0 Not Graduate No \n", + "546 LP002768 Male No 0 Not Graduate No \n", + "551 LP002784 Male Yes 1 Not Graduate No \n", + "553 LP002788 Male Yes 0 Not Graduate No \n", + "560 LP002807 Male Yes 2 Not Graduate No \n", + "565 LP002833 Male Yes 0 Not Graduate No \n", + "587 LP002917 Female No 0 Not Graduate No \n", + "595 LP002940 Male No 0 Not Graduate No \n", + "601 LP002950 Male Yes 0 Not Graduate NaN \n", + "605 LP002960 Male Yes 0 Not Graduate No \n", + "607 LP002964 Male Yes 2 Not Graduate No \n", + "\n", + " ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n", + "3 2583 2358.0 120.0 360.0 \n", + "6 2333 1516.0 95.0 360.0 \n", + "16 3596 0.0 100.0 240.0 \n", + "18 4887 0.0 133.0 360.0 \n", + "22 2600 1911.0 116.0 360.0 \n", + "23 3365 1917.0 112.0 360.0 \n", + "27 4226 1040.0 110.0 360.0 \n", + "28 1442 0.0 35.0 360.0 \n", + "39 3748 1668.0 110.0 360.0 \n", + "44 4695 0.0 96.0 NaN \n", + "50 1928 1644.0 100.0 360.0 \n", + "59 3357 2859.0 144.0 360.0 \n", + "62 2609 3449.0 165.0 180.0 \n", + "66 3200 2254.0 126.0 180.0 \n", + "71 1875 1875.0 97.0 360.0 \n", + "73 4755 0.0 95.0 NaN \n", + "79 3333 2166.0 130.0 360.0 \n", + "86 3333 2000.0 99.0 360.0 \n", + "92 3273 1820.0 81.0 360.0 \n", + "94 3620 0.0 25.0 120.0 \n", + "98 4188 0.0 115.0 180.0 \n", + "100 4288 3263.0 133.0 180.0 \n", + "109 2071 754.0 94.0 480.0 \n", + "112 3572 4114.0 152.0 NaN \n", + "124 4300 2014.0 194.0 360.0 \n", + "139 4200 1430.0 129.0 360.0 \n", + "153 2281 0.0 113.0 360.0 \n", + "160 1863 1041.0 98.0 360.0 \n", + "170 1820 1769.0 95.0 360.0 \n", + "172 3522 0.0 81.0 180.0 \n", + ".. ... ... ... ... \n", + "471 2653 1500.0 113.0 180.0 \n", + "480 4350 0.0 154.0 360.0 \n", + "481 3095 0.0 113.0 360.0 \n", + "485 1958 2436.0 131.0 360.0 \n", + "490 2699 2785.0 96.0 360.0 \n", + "491 5333 1131.0 186.0 360.0 \n", + "492 3691 0.0 110.0 360.0 \n", + "496 2600 1700.0 107.0 360.0 \n", + "503 4050 5302.0 138.0 360.0 \n", + "504 3814 1483.0 124.0 300.0 \n", + "510 3598 1287.0 100.0 360.0 \n", + "517 3074 1800.0 123.0 360.0 \n", + "519 3400 0.0 95.0 360.0 \n", + "520 2192 1742.0 45.0 360.0 \n", + "527 5285 1430.0 161.0 360.0 \n", + "528 2679 1302.0 94.0 360.0 \n", + "535 2550 2042.0 126.0 360.0 \n", + "538 2917 536.0 66.0 360.0 \n", + "543 2239 2524.0 128.0 360.0 \n", + "544 3017 663.0 102.0 360.0 \n", + "546 3358 0.0 80.0 36.0 \n", + "551 2492 2375.0 NaN 360.0 \n", + "553 2454 2333.0 181.0 360.0 \n", + "560 3675 242.0 108.0 360.0 \n", + "565 4467 0.0 120.0 360.0 \n", + "587 2165 0.0 70.0 360.0 \n", + "595 3833 0.0 110.0 360.0 \n", + "601 2894 2792.0 155.0 360.0 \n", + "605 2400 3800.0 NaN 180.0 \n", + "607 3987 1411.0 157.0 360.0 \n", + "\n", + " Credit_History Property_Area Loan_Status \n", + "3 1.0 Urban Y \n", + "6 1.0 Urban Y \n", + "16 NaN Urban Y \n", + "18 1.0 Rural N \n", + "22 0.0 Semiurban N \n", + "23 0.0 Rural N \n", + "27 1.0 Urban Y \n", + "28 1.0 Urban N \n", + "39 1.0 Semiurban Y \n", + "44 1.0 Urban Y \n", + "50 1.0 Semiurban Y \n", + "59 1.0 Urban Y \n", + "62 0.0 Rural N \n", + "66 0.0 Urban N \n", + "71 1.0 Semiurban Y \n", + "73 0.0 Semiurban N \n", + "79 NaN Semiurban Y \n", + "86 NaN Semiurban Y \n", + "92 1.0 Urban Y \n", + "94 1.0 Semiurban Y \n", + "98 1.0 Semiurban Y \n", + "100 1.0 Urban Y \n", + "109 1.0 Semiurban Y \n", + "112 0.0 Rural N \n", + "124 1.0 Rural Y \n", + "139 1.0 Rural N \n", + "153 1.0 Rural N \n", + "160 1.0 Semiurban Y \n", + "170 1.0 Rural Y \n", + "172 1.0 Rural N \n", + ".. ... ... ... \n", + "471 0.0 Rural N \n", + "480 1.0 Rural Y \n", + "481 1.0 Rural Y \n", + "485 1.0 Rural Y \n", + "490 NaN Semiurban Y \n", + "491 NaN Urban Y \n", + "492 1.0 Rural Y \n", + "496 1.0 Rural Y \n", + "503 NaN Rural N \n", + "504 1.0 Semiurban Y \n", + "510 1.0 Rural N \n", + "517 0.0 Semiurban N \n", + "519 1.0 Rural N \n", + "520 1.0 Semiurban Y \n", + "527 0.0 Semiurban Y \n", + "528 1.0 Semiurban Y \n", + "535 1.0 Rural Y \n", + "538 1.0 Rural N \n", + "543 1.0 Urban Y \n", + "544 NaN Semiurban Y \n", + "546 1.0 Semiurban N \n", + "551 1.0 Rural Y \n", + "553 0.0 Urban N \n", + "560 1.0 Semiurban Y \n", + "565 NaN Rural Y \n", + "587 1.0 Semiurban Y \n", + "595 1.0 Rural Y \n", + "601 1.0 Rural Y \n", + "605 1.0 Urban N \n", + "607 1.0 Rural Y \n", + "\n", + "[117 rows x 13 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Code/.ipynb_checkpoints/convert_string_to_characters-checkpoint.ipynb b/Code/.ipynb_checkpoints/convert_string_to_characters-checkpoint.ipynb new file mode 100644 index 0000000..6db2d18 --- /dev/null +++ b/Code/.ipynb_checkpoints/convert_string_to_characters-checkpoint.ipynb @@ -0,0 +1,73 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "QsmXYpdG-peE" + }, + "source": [ + "## Easiest way to convert a string to characters\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "xqE2EH9Otv0w", + "outputId": "ec5fb143-cf7a-4cfc-9f6a-9a9b01211639" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['S', 'p', 'o', 'r', 't', 's', ' ', 'A', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', ' ', 'c', 'a', 'n', ' ', 'b', 'e', ' ', 'a', ' ', 'g', 'a', 'm', 'e', ' ', 'c', 'h', 'a', 'n', 'g', 'e', 'r']\n" + ] + } + ], + "source": [ + "text='Sports Analytics can be a game changer'\n", + "characters=list(text)\n", + "print(characters)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "name": "av hack.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/Code/.ipynb_checkpoints/pandas_pivot_table-checkpoint.ipynb b/Code/.ipynb_checkpoints/pandas_pivot_table-checkpoint.ipynb new file mode 100644 index 0000000..505a917 --- /dev/null +++ b/Code/.ipynb_checkpoints/pandas_pivot_table-checkpoint.ipynb @@ -0,0 +1,396 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pandas Pivot Table" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# import pandas\n", + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#Import dataset\n", + "loan = pd.read_csv('../Data/loan_train.csv', index_col = 'Loan_ID')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GenderMarriedDependentsEducationSelf_EmployedApplicantIncomeCoapplicantIncomeLoanAmountLoan_Amount_TermCredit_HistoryProperty_AreaLoan_Status
Loan_ID
LP001002MaleNo0GraduateNo58490.0NaN360.01.0UrbanY
LP001003MaleYes1GraduateNo45831508.0128.0360.01.0RuralN
LP001005MaleYes0GraduateYes30000.066.0360.01.0UrbanY
LP001006MaleYes0Not GraduateNo25832358.0120.0360.01.0UrbanY
LP001008MaleNo0GraduateNo60000.0141.0360.01.0UrbanY
\n", + "
" + ], + "text/plain": [ + " Gender Married Dependents Education Self_Employed \\\n", + "Loan_ID \n", + "LP001002 Male No 0 Graduate No \n", + "LP001003 Male Yes 1 Graduate No \n", + "LP001005 Male Yes 0 Graduate Yes \n", + "LP001006 Male Yes 0 Not Graduate No \n", + "LP001008 Male No 0 Graduate No \n", + "\n", + " ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n", + "Loan_ID \n", + "LP001002 5849 0.0 NaN 360.0 \n", + "LP001003 4583 1508.0 128.0 360.0 \n", + "LP001005 3000 0.0 66.0 360.0 \n", + "LP001006 2583 2358.0 120.0 360.0 \n", + "LP001008 6000 0.0 141.0 360.0 \n", + "\n", + " Credit_History Property_Area Loan_Status \n", + "Loan_ID \n", + "LP001002 1.0 Urban Y \n", + "LP001003 1.0 Rural N \n", + "LP001005 1.0 Urban Y \n", + "LP001006 1.0 Urban Y \n", + "LP001008 1.0 Urban Y " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "loan.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
LoanAmount
GenderMarriedSelf_Employed
FemaleNoNo110.596774
Yes125.800000
YesNo135.480000
Yes282.250000
MaleNoNo128.137255
Yes173.625000
YesNo151.709220
Yes169.355556
\n", + "
" + ], + "text/plain": [ + " LoanAmount\n", + "Gender Married Self_Employed \n", + "Female No No 110.596774\n", + " Yes 125.800000\n", + " Yes No 135.480000\n", + " Yes 282.250000\n", + "Male No No 128.137255\n", + " Yes 173.625000\n", + " Yes No 151.709220\n", + " Yes 169.355556" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pivot = loan.pivot_table(values = ['LoanAmount'], index = ['Gender', 'Married', 'Self_Employed'], aggfunc = np.mean)\n", + "pivot" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
LoanAmount
Gender
Female126.697248
Male149.265957
\n", + "
" + ], + "text/plain": [ + " LoanAmount\n", + "Gender \n", + "Female 126.697248\n", + "Male 149.265957" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pivot_by_gender=loan.pivot_table(values=\"LoanAmount\",index=[\"Gender\"])\n", + "pivot_by_gender" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Code/Convert normal Distribution.ipynb b/Code/Convert normal Distribution.ipynb index faac68d..1d07724 100644 --- a/Code/Convert normal Distribution.ipynb +++ b/Code/Convert normal Distribution.ipynb @@ -209,7 +209,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.1" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/Code/Pandas Apply.ipynb b/Code/Pandas Apply.ipynb index b21e1c3..00874a9 100644 --- a/Code/Pandas Apply.ipynb +++ b/Code/Pandas Apply.ipynb @@ -131,7 +131,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.1" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/Code/column_transformer.ipynb b/Code/column_transformer.ipynb index adac020..ec7b02b 100644 --- a/Code/column_transformer.ipynb +++ b/Code/column_transformer.ipynb @@ -279,7 +279,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.1" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/Code/conditional_selection_of_rows.ipynb b/Code/conditional_selection_of_rows.ipynb index 97c6dbe..474e1f5 100644 --- a/Code/conditional_selection_of_rows.ipynb +++ b/Code/conditional_selection_of_rows.ipynb @@ -1441,7 +1441,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.1" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/Code/convert_string_to_characters.ipynb b/Code/convert_string_to_characters.ipynb index 858c510..6db2d18 100644 --- a/Code/convert_string_to_characters.ipynb +++ b/Code/convert_string_to_characters.ipynb @@ -65,7 +65,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.1" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/Code/pandas_pivot_table.ipynb b/Code/pandas_pivot_table.ipynb index 91f0ca1..2e2a843 100644 --- a/Code/pandas_pivot_table.ipynb +++ b/Code/pandas_pivot_table.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -28,6 +28,176 @@ "loan = pd.read_csv('../Data/loan_train.csv', index_col = 'Loan_ID')" ] }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GenderMarriedDependentsEducationSelf_EmployedApplicantIncomeCoapplicantIncomeLoanAmountLoan_Amount_TermCredit_HistoryProperty_AreaLoan_Status
Loan_ID
LP001002MaleNo0GraduateNo58490.0NaN360.01.0UrbanY
LP001003MaleYes1GraduateNo45831508.0128.0360.01.0RuralN
LP001005MaleYes0GraduateYes30000.066.0360.01.0UrbanY
LP001006MaleYes0Not GraduateNo25832358.0120.0360.01.0UrbanY
LP001008MaleNo0GraduateNo60000.0141.0360.01.0UrbanY
\n", + "
" + ], + "text/plain": [ + " Gender Married Dependents Education Self_Employed \\\n", + "Loan_ID \n", + "LP001002 Male No 0 Graduate No \n", + "LP001003 Male Yes 1 Graduate No \n", + "LP001005 Male Yes 0 Graduate Yes \n", + "LP001006 Male Yes 0 Not Graduate No \n", + "LP001008 Male No 0 Graduate No \n", + "\n", + " ApplicantIncome CoapplicantIncome LoanAmount Loan_Amount_Term \\\n", + "Loan_ID \n", + "LP001002 5849 0.0 NaN 360.0 \n", + "LP001003 4583 1508.0 128.0 360.0 \n", + "LP001005 3000 0.0 66.0 360.0 \n", + "LP001006 2583 2358.0 120.0 360.0 \n", + "LP001008 6000 0.0 141.0 360.0 \n", + "\n", + " Credit_History Property_Area Loan_Status \n", + "Loan_ID \n", + "LP001002 1.0 Urban Y \n", + "LP001003 1.0 Rural N \n", + "LP001005 1.0 Urban Y \n", + "LP001006 1.0 Urban Y \n", + "LP001008 1.0 Urban Y " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "loan.head()" + ] + }, { "cell_type": "code", "execution_count": 7, @@ -131,6 +301,132 @@ "pivot" ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
LoanAmount
Gender
Female126.697248
Male149.265957
\n", + "
" + ], + "text/plain": [ + " LoanAmount\n", + "Gender \n", + "Female 126.697248\n", + "Male 149.265957" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pivot_by_gender=loan.pivot_table(values=\"LoanAmount\",index=[\"Gender\"])\n", + "pivot_by_gender" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
LoanAmount
Education
Graduate154.060215
Not Graduate118.409449
\n", + "
" + ], + "text/plain": [ + " LoanAmount\n", + "Education \n", + "Graduate 154.060215\n", + "Not Graduate 118.409449" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pivot_by_education=loan.pivot_table(values=\"LoanAmount\", index=\"Education\")\n", + "pivot_by_education" + ] + }, { "cell_type": "code", "execution_count": null, @@ -155,7 +451,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.1" + "version": "3.7.4" } }, "nbformat": 4,