From 439905bf7f1f926fddc8f50f1bf00794efa1b2ff Mon Sep 17 00:00:00 2001 From: Ankit Date: Sun, 4 Sep 2022 02:33:30 +0530 Subject: [PATCH 01/13] my first commit --- details.txt.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 details.txt.txt diff --git a/details.txt.txt b/details.txt.txt new file mode 100644 index 0000000..e69de29 From cf808569618023a136a46ab960758cef7089dcfd Mon Sep 17 00:00:00 2001 From: Ankit Date: Sun, 4 Sep 2022 02:38:16 +0530 Subject: [PATCH 02/13] my updated commit --- details.txt.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/details.txt.txt b/details.txt.txt index e69de29..1c38493 100644 --- a/details.txt.txt +++ b/details.txt.txt @@ -0,0 +1,2 @@ +ankit +ankitdhandharia45@gmail.com \ No newline at end of file From 5bfd9dc01811dcb50026e32a11551f60c21a021d Mon Sep 17 00:00:00 2001 From: Ankit Date: Sun, 4 Sep 2022 17:22:39 +0530 Subject: [PATCH 03/13] Folder update --- ankit/requirements.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 ankit/requirements.txt diff --git a/ankit/requirements.txt b/ankit/requirements.txt new file mode 100644 index 0000000..8318c86 --- /dev/null +++ b/ankit/requirements.txt @@ -0,0 +1 @@ +Test \ No newline at end of file From e40624b77bcaeb70a36bf2099fefee82d1e4e3aa Mon Sep 17 00:00:00 2001 From: Ankit Date: Sun, 4 Sep 2022 17:31:48 +0530 Subject: [PATCH 04/13] test --- .idea/.gitignore | 8 ++++++++ .idea/14_days_challenge.iml | 8 ++++++++ .idea/inspectionProfiles/profiles_settings.xml | 6 ++++++ .idea/misc.xml | 4 ++++ .idea/modules.xml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ .idea/webResources.xml | 14 ++++++++++++++ ankit/ds.py | 2 ++ 8 files changed, 56 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/14_days_challenge.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/webResources.xml create mode 100644 ankit/ds.py diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/14_days_challenge.iml b/.idea/14_days_challenge.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/14_days_challenge.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a0f56f8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2215a9c --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/webResources.xml b/.idea/webResources.xml new file mode 100644 index 0000000..da03542 --- /dev/null +++ b/.idea/webResources.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ds.py b/ankit/ds.py new file mode 100644 index 0000000..df39e65 --- /dev/null +++ b/ankit/ds.py @@ -0,0 +1,2 @@ +import numpy as np +import pandas as pd From c5d64cab5ce0f2d1051a62d19e91aec7c229494e Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Mon, 5 Sep 2022 23:21:00 +0530 Subject: [PATCH 05/13] Basic data processing and visualization --- Finance.ipynb | 388 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 388 insertions(+) create mode 100644 Finance.ipynb diff --git a/Finance.ipynb b/Finance.ipynb new file mode 100644 index 0000000..4e486e5 --- /dev/null +++ b/Finance.ipynb @@ -0,0 +1,388 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "collapsed_sections": [], + "authorship_tag": "ABX9TyOTvC1PQ2Kr5qm5f5RgYgZL", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "DK9OMf6Yi7T3" + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n" + ] + }, + { + "cell_type": "code", + "source": [ + "df = pd.read_csv('financials.csv')\n", + "print(df.head())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GofWEpHll3zk", + "outputId": "d1e78f12-68cf-411a-83ec-d1eb63422d94" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Symbol Name Sector Price Price/Earnings \\\n", + "0 MMM 3M Company Industrials 222.89 24.31 \n", + "1 AOS A.O. Smith Corp Industrials 60.24 27.76 \n", + "2 ABT Abbott Laboratories Health Care 56.27 22.51 \n", + "3 ABBV AbbVie Inc. Health Care 108.48 19.41 \n", + "4 ACN Accenture plc Information Technology 150.51 25.47 \n", + "\n", + " Dividend Yield Earnings/Share 52 Week Low 52 Week High Market Cap \\\n", + "0 2.332862 7.92 259.77 175.490 1.387211e+11 \n", + "1 1.147959 1.70 68.39 48.925 1.078342e+10 \n", + "2 1.908982 0.26 64.60 42.280 1.021210e+11 \n", + "3 2.499560 3.29 125.86 60.050 1.813863e+11 \n", + "4 1.714470 5.44 162.60 114.820 9.876586e+10 \n", + "\n", + " EBITDA Price/Sales Price/Book \\\n", + "0 9.048000e+09 4.390271 11.34 \n", + "1 6.010000e+08 3.575483 6.35 \n", + "2 5.744000e+09 3.740480 3.19 \n", + "3 1.031000e+10 6.291571 26.14 \n", + "4 5.643228e+09 2.604117 10.62 \n", + "\n", + " SEC Filings \n", + "0 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "1 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "2 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "3 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "4 http://www.sec.gov/cgi-bin/browse-edgar?action... \n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(df.info())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Yxt0MaG0m9_7", + "outputId": "08afdb32-0a95-4a06-c55c-42e9d1c9de26" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 505 entries, 0 to 504\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Symbol 505 non-null object \n", + " 1 Name 505 non-null object \n", + " 2 Sector 505 non-null object \n", + " 3 Price 505 non-null float64\n", + " 4 Price/Earnings 503 non-null float64\n", + " 5 Dividend Yield 505 non-null float64\n", + " 6 Earnings/Share 505 non-null float64\n", + " 7 52 Week Low 505 non-null float64\n", + " 8 52 Week High 505 non-null float64\n", + " 9 Market Cap 505 non-null float64\n", + " 10 EBITDA 505 non-null float64\n", + " 11 Price/Sales 505 non-null float64\n", + " 12 Price/Book 497 non-null float64\n", + " 13 SEC Filings 505 non-null object \n", + "dtypes: float64(10), object(4)\n", + "memory usage: 55.4+ KB\n", + "None\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "r,c = df.shape\n", + "print(r,c)" + ], + "metadata": { + "id": "YgSBvX_zq2XK", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "abf121d8-290d-4411-b206-5b6269ce12a7" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "505 14\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(df.describe())\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OPCtjBpj67Rz", + "outputId": "4972f175-8200-45cf-dc2a-a9ebad8d79b0" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Price Price/Earnings Dividend Yield Earnings/Share \\\n", + "count 505.000000 503.000000 505.000000 505.000000 \n", + "mean 103.830634 24.808390 1.895953 3.753743 \n", + "std 134.427636 41.241081 1.537214 5.689036 \n", + "min 2.820000 -251.530000 0.000000 -28.010000 \n", + "25% 46.250000 15.350000 0.794834 1.490000 \n", + "50% 73.920000 19.450000 1.769255 2.890000 \n", + "75% 116.540000 25.750000 2.781114 5.140000 \n", + "max 1806.060000 520.150000 12.661196 44.090000 \n", + "\n", + " 52 Week Low 52 Week High Market Cap EBITDA Price/Sales \\\n", + "count 505.000000 505.000000 5.050000e+02 5.050000e+02 505.000000 \n", + "mean 122.623832 83.536616 4.923944e+10 3.590328e+09 3.941705 \n", + "std 155.362140 105.725473 9.005017e+10 6.840544e+09 3.460110 \n", + "min 6.590000 2.800000 2.626102e+09 -5.067000e+09 0.153186 \n", + "25% 56.250000 38.430000 1.273207e+10 7.739320e+08 1.629490 \n", + "50% 86.680000 62.850000 2.140095e+10 1.614399e+09 2.896440 \n", + "75% 140.130000 96.660000 4.511968e+10 3.692749e+09 4.703842 \n", + "max 2067.990000 1589.000000 8.095080e+11 7.938600e+10 20.094294 \n", + "\n", + " Price/Book \n", + "count 497.000000 \n", + "mean 14.453179 \n", + "std 89.660508 \n", + "min 0.510000 \n", + "25% 2.020000 \n", + "50% 3.400000 \n", + "75% 6.110000 \n", + "max 1403.380000 \n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "name = df['Name'].head(10)\n", + "price = df['Price'].head(10)\n", + "high52 = df['52 Week High'].head(10)\n", + "low52 = df['52 Week Low'].head(10)\n" + ], + "metadata": { + "id": "pW0COy_N7q1h" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "comp = " + ], + "metadata": { + "id": "JvXUSTHpEMX_" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "print(name,price,high52,low52)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "f8zS-Jcf9N4J", + "outputId": "65a03e4c-f9f1-4784-dcea-17b27399d130" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0 3M Company\n", + "1 A.O. Smith Corp\n", + "2 Abbott Laboratories\n", + "3 AbbVie Inc.\n", + "4 Accenture plc\n", + "5 Activision Blizzard\n", + "6 Acuity Brands Inc\n", + "7 Adobe Systems Inc\n", + "8 Advance Auto Parts\n", + "9 Advanced Micro Devices Inc\n", + "Name: Name, dtype: object 0 222.89\n", + "1 60.24\n", + "2 56.27\n", + "3 108.48\n", + "4 150.51\n", + "5 65.83\n", + "6 145.41\n", + "7 185.16\n", + "8 109.63\n", + "9 11.22\n", + "Name: Price, dtype: float64 0 175.490\n", + "1 48.925\n", + "2 42.280\n", + "3 60.050\n", + "4 114.820\n", + "5 38.930\n", + "6 142.000\n", + "7 114.451\n", + "8 78.810\n", + "9 9.700\n", + "Name: 52 Week High, dtype: float64 0 259.770\n", + "1 68.390\n", + "2 64.600\n", + "3 125.860\n", + "4 162.600\n", + "5 74.945\n", + "6 225.360\n", + "7 204.450\n", + "8 169.550\n", + "9 15.650\n", + "Name: 52 Week Low, dtype: float64\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "fig = plt.figure(figsize=(10,5))\n", + "plt.bar(name,price,color='blue',width=0.2)\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 320 + }, + "id": "4Vx5h_Z_9Qxx", + "outputId": "6db8ebe6-45f6-4a28-d14d-67164beafe36" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "plotdata = pd.DataFrame({\n", + "\n", + " \"2018\":[57,67,77,83],\n", + "\n", + " \"2019\":[68,73,80,79],\n", + "\n", + " \"2020\":[73,78,80,85]},\n", + "\n", + " index=[\"Django\", \"Gafur\", \"Tommy\", \"Ronnie\"])\n", + "\n", + "plotdata.plot(kind=\"bar\",figsize=(15, 8))\n", + "\n", + "plt.title(\"FIFA ratings\")\n", + "\n", + "plt.xlabel(\"Footballer\")\n", + "\n", + "plt.ylabel(\"Ratings\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 555 + }, + "id": "nb0bXhSEA9Sg", + "outputId": "1fcd135a-fc34-489a-f6eb-9c3a7abc8327" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0, 0.5, 'Ratings')" + ] + }, + "metadata": {}, + "execution_count": 52 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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lvPPPz8LFiy437aq2u2dK7/+9a9n3bp1ufHGG/O1r30t3/72t/NHf/RH44wMAADMEUrdXrr77rtz2mmn5eUvf3lOPfXUJMkRRxyRLVu2JEm2bNmSww8/fJfv8Vd/9Vc59thjs2jRosyfPz+nnnpq/u7v/m7s2QEAgOFT6vZCd+ess87KsmXLcs4559w3fvLJJ2ft2rVJkrVr1+aUU07Z5fscffTRufLKK3PnnXemu3PFFVdk2bJlY80OAADMDdXdk86wWytWrOj169ffb+y6666bePH5xCc+kR/5kR/J8uXLs99+U/34jW98Y0466aScfvrp+epXv5pjjjkml112WQ499NDcfPPNWbFiRW6//fbst99+efSjH50NGzZkwYIFed3rXpf3vve9mTdvXp7+9Kfn4osvzg/8wA/c7/MeDt8ZAACYfVV1VXev2Ok2pW449sXvDAAA7LrUOf0SAABgwJQ6AACAAZs36QAAAMDcsHzt8klHuM81q66ZdIRZY6YOAABgwJQ6AACAAVPqAAAABmzuXFN37sEP8ft9c7e73HTTTTnjjDOydevWVFVWr16ds88+O7fddlte8pKXZOPGjVm6dGkuu+yyLFy4MF/60pdy5pln5rOf/Wze8IY35DWvec197/U7v/M7ecc73pHuzi/8wi/k1a9+9UP7fQAAgDnJTN1emDdvXt7ylrdkw4YNufLKK3PhhRdmw4YNOe+887Jy5cpcf/31WblyZc4777wkyaGHHpoLLrjgfmUuSa699tq84x3vyGc+85l8/vOfz4c//OHccMMNk/hKAADAwCh1e2Hx4sU54YQTkiQHHXRQli1bls2bN2fdunVZtWpVkmTVqlW5/PLLkySHH354TjzxxMyfP/9+73PdddflpJNOyiMf+cjMmzcvP/ZjP5YPfOADs/tlAACAQVLqHiIbN27M1VdfnZNOOilbt27N4sWLkyRHHnlktm7dustjn/rUp+bjH/94br311tx55535sz/7s9x0002zERsAABi4uXNN3QTdcccdOe2003L++ednwYIF99tWVamqXR6/bNmyvPa1r83zn//8POpRj8rxxx+f/ffff5yRAQCAOcJM3V66++67c9ppp+XlL395Tj311CTJEUcckS1btiRJtmzZksMPP3y373PWWWflqquuyt/+7d9m4cKFeeITnzjW3AAAwNxgpm4vdHfOOuusLFu2LOecc8594yeffHLWrl2bNWvWZO3atTnllFN2+1633HJLDj/88Hz1q1/NBz7wgVx55ZXjjA4AwF5YuuZPJx3hPhvPe+GkIzBhc6fUTeMRBA+1T37yk7n00kuzfPnyHH/88UmSN77xjVmzZk1OP/30XHLJJTnmmGNy2WWXJUluvvnmrFixIrfffnv222+/nH/++dmwYUMWLFiQ0047Lbfeemvmz5+fCy+8MIcccsisfx8AAGB45k6pm4DnPve56e6dbrviiiv+xdiRRx6ZTZs27XT/j3/84w9pNgAAYN/gmjoAAIABU+oAAAAGTKkDAAAYMKUOAABgwJQ6AACAAVPqAAAABmzOPNJg+drlD+n7XbPqmt3uc9NNN+WMM87I1q1bU1VZvXp1zj777Nx22215yUteko0bN2bp0qW57LLLsnDhwrzrXe/Km970pnR3DjrooLz97W/PcccdlyT58z//85x99tnZvn17XvnKV2bNmjUP6fcBAADmJjN1e2HevHl5y1vekg0bNuTKK6/MhRdemA0bNuS8887LypUrc/3112flypU577zzkiTHHntsPvaxj+Waa67Jr//6r2f16tVJku3bt+cXf/EX85GPfCQbNmzIu9/97mzYsGGSXw0AABiIsZa6qvrlqvpiVV1bVe+uqgOr6tiq+nRV3VBV762qA8aZYZwWL16cE044IUly0EEHZdmyZdm8eXPWrVuXVatWJUlWrVqVyy+/PEny7Gc/OwsXLkySPPOZz7zvQeSf+cxn8vjHPz6Pe9zjcsABB+SlL31p1q1bN4FvBAAADM3YSl1VHZXkl5Ks6O6nJtk/yUuTvCnJW7v78Um+nuSscWWYTRs3bszVV1+dk046KVu3bs3ixYuTJEceeWS2bt36L/a/5JJL8tM//dNJks2bN+exj33sfduWLFmSzZs3z05wAABg0MZ9Td28JI+oqruTPDLJliTPS/LvRtvXJjk3ydvHnGOs7rjjjpx22mk5//zzs2DBgvttq6pU1f3GPvrRj+aSSy7JJz7xidmMCQAAzEFjK3XdvbmqfivJV5N8J8lfJLkqyTe6+57RbpuSHLWz46tqdZLVSXL00UePK+Zeu/vuu3Paaafl5S9/eU499dQkyRFHHJEtW7Zk8eLF2bJlSw4//PD79v/CF76QV77ylfnIRz6Sww47LEly1FFH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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + } + ] +} \ No newline at end of file From 50d60d67cd7285f958178575ac319cd4e6db7259 Mon Sep 17 00:00:00 2001 From: Ankit Date: Mon, 5 Sep 2022 23:28:55 +0530 Subject: [PATCH 06/13] Updated Basic data processing and visualization --- Finance.ipynb => ankit/Finance.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Finance.ipynb => ankit/Finance.ipynb (100%) diff --git a/Finance.ipynb b/ankit/Finance.ipynb similarity index 100% rename from Finance.ipynb rename to ankit/Finance.ipynb From 494f10309ef354a29670c1ff2e34aa9b02848bd5 Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Wed, 7 Sep 2022 21:12:57 +0530 Subject: [PATCH 07/13] Created using Colaboratory --- ankit/Finance.ipynb | 537 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 439 insertions(+), 98 deletions(-) diff --git a/ankit/Finance.ipynb b/ankit/Finance.ipynb index 4e486e5..979b37e 100644 --- a/ankit/Finance.ipynb +++ b/ankit/Finance.ipynb @@ -5,7 +5,8 @@ "colab": { "provenance": [], "collapsed_sections": [], - "authorship_tag": "ABX9TyOTvC1PQ2Kr5qm5f5RgYgZL", + "mount_file_id": "1eVjWN0ysDmV2RReXznoIIT_fyNwrYv7n", + "authorship_tag": "ABX9TyNgrne2Ua5CWcgLGV4SLlyr", "include_colab_link": true }, "kernelspec": { @@ -24,7 +25,7 @@ "colab_type": "text" }, "source": [ - "\"Open" + "\"Open" ] }, { @@ -44,7 +45,7 @@ { "cell_type": "code", "source": [ - "df = pd.read_csv('financials.csv')\n", + "df = pd.read_csv('drive/MyDrive/financials.csv')\n", "print(df.head())" ], "metadata": { @@ -52,7 +53,7 @@ "base_uri": "https://localhost:8080/" }, "id": "GofWEpHll3zk", - "outputId": "d1e78f12-68cf-411a-83ec-d1eb63422d94" + "outputId": "68761701-37de-400b-e696-12ce7692f552" }, "execution_count": null, "outputs": [ @@ -91,6 +92,15 @@ } ] }, + { + "cell_type": "markdown", + "source": [ + "# New Section" + ], + "metadata": { + "id": "md0NhiY2Q8kQ" + } + }, { "cell_type": "code", "source": [ @@ -135,6 +145,252 @@ } ] }, + { + "cell_type": "code", + "source": [ + "df.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "okGiIBRVQvXO", + "outputId": "8f14d8d5-9ab2-4e0c-85d5-4f4c92b71fc4" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Symbol 0\n", + "Name 0\n", + "Sector 0\n", + "Price 0\n", + "Price/Earnings 2\n", + "Dividend Yield 0\n", + "Earnings/Share 0\n", + "52 Week Low 0\n", + "52 Week High 0\n", + "Market Cap 0\n", + "EBITDA 0\n", + "Price/Sales 0\n", + "Price/Book 8\n", + "SEC Filings 0\n", + "dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df = df.dropna().head(50)\n", + "df.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "M1Oi0fVuR_Qr", + "outputId": "26347261-540a-4c2e-9aa6-59242c67c9be" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Symbol 0\n", + "Name 0\n", + "Sector 0\n", + "Price 0\n", + "Price/Earnings 0\n", + "Dividend Yield 0\n", + "Earnings/Share 0\n", + "52 Week Low 0\n", + "52 Week High 0\n", + "Market Cap 0\n", + "EBITDA 0\n", + "Price/Sales 0\n", + "Price/Book 0\n", + "SEC Filings 0\n", + "dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df1= df.loc[:,['52 Week Low','52 Week High']]\n", + "df1.head(5)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 215 + }, + "id": "X5vYdbYNSVEN", + "outputId": "c3acb53c-a151-4bfd-bdf1-27c508e69426" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " 52 Week Low 52 Week High\n", + "0 259.77 175.490\n", + "1 68.39 48.925\n", + "2 64.60 42.280\n", + "3 125.86 60.050\n", + "4 162.60 114.820" + ], + "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", + "
52 Week Low52 Week High
0259.77175.490
168.3948.925
264.6042.280
3125.8660.050
4162.60114.820
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, { "cell_type": "code", "source": [ @@ -169,43 +425,43 @@ "base_uri": "https://localhost:8080/" }, "id": "OPCtjBpj67Rz", - "outputId": "4972f175-8200-45cf-dc2a-a9ebad8d79b0" + "outputId": "a36dafc0-56c3-4241-f036-a25f4629d42c" }, - "execution_count": null, + "execution_count": 14, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - " Price Price/Earnings Dividend Yield Earnings/Share \\\n", - "count 505.000000 503.000000 505.000000 505.000000 \n", - "mean 103.830634 24.808390 1.895953 3.753743 \n", - "std 134.427636 41.241081 1.537214 5.689036 \n", - "min 2.820000 -251.530000 0.000000 -28.010000 \n", - "25% 46.250000 15.350000 0.794834 1.490000 \n", - "50% 73.920000 19.450000 1.769255 2.890000 \n", - "75% 116.540000 25.750000 2.781114 5.140000 \n", - "max 1806.060000 520.150000 12.661196 44.090000 \n", + " Price Price/Earnings Dividend Yield Earnings/Share \\\n", + "count 20.000000 20.000000 20.000000 20.000000 \n", + "mean 106.510000 30.991000 1.480700 4.855000 \n", + "std 59.155562 37.957537 1.283868 4.239713 \n", + "min 10.060000 9.660000 0.000000 -1.720000 \n", + "25% 63.652500 18.192500 0.411724 1.667500 \n", + "50% 106.830000 23.365000 1.174186 4.415000 \n", + "75% 151.082500 27.527500 2.357123 7.552500 \n", + "max 222.890000 187.000000 4.961832 13.660000 \n", "\n", " 52 Week Low 52 Week High Market Cap EBITDA Price/Sales \\\n", - "count 505.000000 505.000000 5.050000e+02 5.050000e+02 505.000000 \n", - "mean 122.623832 83.536616 4.923944e+10 3.590328e+09 3.941705 \n", - "std 155.362140 105.725473 9.005017e+10 6.840544e+09 3.460110 \n", - "min 6.590000 2.800000 2.626102e+09 -5.067000e+09 0.153186 \n", - "25% 56.250000 38.430000 1.273207e+10 7.739320e+08 1.629490 \n", - "50% 86.680000 62.850000 2.140095e+10 1.614399e+09 2.896440 \n", - "75% 140.130000 96.660000 4.511968e+10 3.692749e+09 4.703842 \n", - "max 2067.990000 1589.000000 8.095080e+11 7.938600e+10 20.094294 \n", + "count 20.000000 20.000000 2.000000e+01 2.000000e+01 20.000000 \n", + "mean 129.343500 82.828805 4.568229e+10 2.677373e+09 4.520701 \n", + "std 70.771182 47.168770 5.107358e+10 2.939704e+09 3.512549 \n", + "min 12.050000 9.700000 6.242378e+09 0.000000e+00 0.659514 \n", + "25% 73.598750 47.856250 1.069811e+10 6.647725e+08 1.732244 \n", + "50% 130.115000 73.805000 1.701399e+10 1.463200e+09 3.928424 \n", + "75% 179.977500 115.992500 6.803532e+10 3.285500e+09 5.963882 \n", + "max 259.770000 175.490000 1.813863e+11 1.031000e+10 13.092818 \n", "\n", - " Price/Book \n", - "count 497.000000 \n", - "mean 14.453179 \n", - "std 89.660508 \n", - "min 0.510000 \n", - "25% 2.020000 \n", - "50% 3.400000 \n", - "75% 6.110000 \n", - "max 1403.380000 \n" + " Price/Book \n", + "count 20.000000 \n", + "mean 6.511000 \n", + "std 6.675381 \n", + "min 1.530000 \n", + "25% 2.795000 \n", + "50% 3.450000 \n", + "75% 7.417500 \n", + "max 26.140000 \n" ] } ] @@ -224,76 +480,140 @@ "execution_count": null, "outputs": [] }, + { + "cell_type": "markdown", + "source": [ + "fig = plt.figure(figsize=(10,5))\n", + "plt.bar(name,price,color='blue',width=0.2)\n", + "plt.show()" + ], + "metadata": { + "id": "4Vx5h_Z_9Qxx" + } + }, { "cell_type": "code", "source": [ - "comp = " + "df.plot(x='52 Week High', y='52 Week Low', style='+')\n", + "plt.xlabel('52 Week High')\n", + "plt.ylabel('52 Week Low')\n", + "plt.show()" ], "metadata": { - "id": "JvXUSTHpEMX_" + "id": "LYHfixdzZqO_", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "outputId": "6f093f48-24a3-4b35-99bf-7e3810f80e44" }, - "execution_count": null, + "execution_count": 19, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdOElEQVR4nO3de5zVdb3v8ddbYYOSlsJIHARHPYAJEsI8ahjAKIO8VEoXtmZetj7C09a8deoB6Tm294PKOiXHdm2VjgZ22JUbrUjNILYelIHcgIRc4hJiwQO5ec2Sm5/zx+83vxbDzJrFuNasNbPez8djPea3vr/L+syPYT7z+14VEZiZmQEcVe4AzMyscjgpmJlZxknBzMwyTgpmZpZxUjAzs0y3cgfwdvTp0ydqa2vLHYaZWaeyfPny3RFR09K+Tp0UamtrWbZsWbnDMDPrVCS90No+Vx+ZmVnGScHMzDJOCmZmlunUbQot2b9/P1u3buXNN98sdyiW6tmzJyeffDLdu3cvdyhm1oYulxS2bt3KcccdR21tLZLKHU7Viwj27NnD1q1bOfXUU8sdjpm1octVH7355pv07t3bCaFCSKJ3795+cjMrshkLNpTkul0uKQBOCBXG/x5mxXfXwo0luW6XTApmZtY+TgolUFtby1lnncWIESOoq6vLyr/0pS9xxhlnMHz4cCZNmsQrr7xy2LmTJk3i5z//efZ+yJAhTJ8+PXv/yU9+kocffviIYxo/fnybA/0KOcbMymfGgg3UTn2U2qmPAmTbxaxKclJIFbt+7oknnmDlypWH/JKdMGECq1evZtWqVQwePJhvfOMbh503ZswYGhsbAdizZw+9evViyZIl2f4lS5bQ0NBQ1FjNrHO4ecJgttxxIVvuuBAg2755wuCifYaTQqpU9XO5Jk6cSLduSYev+vp6tm7detgxDQ0NWVJobGzkYx/7GLt27SIieP755znmmGN497vfzfz58xk9ejQjR47k05/+NH/+858BWL58OR/4wAcYNWoUH/nIR9i+ffsh13/rrbe46qqruO222wqK+aWXXuLiiy9m+PDh1NfXs2rVKgDOOussXnnlFSKC3r1788ADDwBwxRVXsGDBgvbdIDMrOyeFEpDExIkTGTVqFDNnzmzxmPvvv5/zzz//sPJRo0axevVq9u3bR2NjI6NHj2bIkCGsW7eOxsZGGhoa2L17N9OnT+c3v/kNK1asoK6ujjvvvJP9+/fzhS98gblz57J8+XKuvvpqbr311uzaBw4c4LLLLmPQoEGHVEnlc/vtt3P22WezatUqvv71r3PFFVcAyRPN4sWLWbNmDaeddhpPPfUU4CcZs45y47mDSnLdLjdO4UjMWLDhkCeEpnq6G88d9LYex55++mn69+/Pzp07mTBhAmeccQbnnHNOtv9rX/sa3bp147LLLjvs3B49ejB06FBWrFjB0qVL+fKXv8zmzZtpbGzk2WefZcyYMSxdupS1a9cyZswYAPbt28fo0aNZv349q1evZsKECQAcPHiQfv36Zde+9tprmTx58iGJopDv5aGHHgLgQx/6EHv27OG1115j3LhxLFq0iFNOOYXPf/7zzJw5k23btnHCCSfQq1evdt03MytcMauMcpXsSUHSAElPSForaY2kG9Pyr0raJmll+rog55xpkjZJWi/pI6WKrUmp6uf69+8PwEknncSkSZN45plnsn2zZs3ikUceYc6cOa121RwzZgyLFi3i9ddf54QTTqC+vp7GxsbsSSEimDBhAitXrmTlypWsXbuW++67j4hg6NChWflzzz3H/Pnzs+s2NDTwxBNPFGXMwDnnnMNTTz3FU089xfjx46mpqWHu3LmMGzfubV/bzMqnlNVHB4AvRsSZQD1wnaQz030zImJE+noMIN13CTAUOA/4V0lHlzC+knjjjTd4/fXXs+358+czbNgwAB5//HG+9a1vMW/ePI499thWr9HQ0MC9997Le9/7XgCGDx/O0qVL+eMf/8iwYcOor69n8eLFbNq0KfucDRs2MGTIEHbt2pU1TO/fv581a9Zk173mmmu44IILmDx5MgcOHCjo+xk3bhxz5swB4Mknn6RPnz4cf/zxDBgwgN27d7Nx40ZOO+00xo4dy7e//e1DnojMrPMpWfVRRGwHtqfbr0taB/TPc8pFwE8iYi/wvKRNwPuAJXnOKZpi1c/t2LGDSZMmAUkd/mc+8xnOO+88AK6//nr27t2bVe/U19dzzz33HHaNhoYGNm/ezLRp0wDo1q0bJ510EgMGDOCoo46ipqaGWbNmcemll7J3714Apk+fzuDBg5k7dy433HADr776KgcOHOCmm25i6NCh2bVvueUWXn31VS6//HLmzJnDUUcd+nfBhRdemM1R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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "X = pd.DataFrame(df['52 Week High'])\n", + "y = pd.DataFrame(df['52 Week Low'])" + ], + "metadata": { + "id": "U1xmlVfHf-_n" + }, + "execution_count": 20, "outputs": [] }, { "cell_type": "code", "source": [ - "print(name,price,high52,low52)" + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3, random_state=1)\n", + "X_train.shape\n", + "X_test.shape\n", + "y_train.shape\n", + "y_test.shape" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "id": "f8zS-Jcf9N4J", - "outputId": "65a03e4c-f9f1-4784-dcea-17b27399d130" + "id": "JSZwIBN4gIRc", + "outputId": "8cdb2485-7070-439b-ce6b-0c4353cc9de6" }, - "execution_count": null, + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(6, 1)" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error\n", + "regressor = LinearRegression()\n", + "regressor.fit(X_train, y_train)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1m0Yo9MjgbHj", + "outputId": "e70527c8-d55b-447a-bd64-edd9c1bb2e21" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "LinearRegression()" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(regressor.intercept_)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "eWcF3q32geV7", + "outputId": "0e971114-891d-425d-e176-1e5745182166" + }, + "execution_count": 24, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "0 3M Company\n", - "1 A.O. Smith Corp\n", - "2 Abbott Laboratories\n", - "3 AbbVie Inc.\n", - "4 Accenture plc\n", - "5 Activision Blizzard\n", - "6 Acuity Brands Inc\n", - "7 Adobe Systems Inc\n", - "8 Advance Auto Parts\n", - "9 Advanced Micro Devices Inc\n", - "Name: Name, dtype: object 0 222.89\n", - "1 60.24\n", - "2 56.27\n", - "3 108.48\n", - "4 150.51\n", - "5 65.83\n", - "6 145.41\n", - "7 185.16\n", - "8 109.63\n", - "9 11.22\n", - "Name: Price, dtype: float64 0 175.490\n", - "1 48.925\n", - "2 42.280\n", - "3 60.050\n", - "4 114.820\n", - "5 38.930\n", - "6 142.000\n", - "7 114.451\n", - "8 78.810\n", - "9 9.700\n", - "Name: 52 Week High, dtype: float64 0 259.770\n", - "1 68.390\n", - "2 64.600\n", - "3 125.860\n", - "4 162.600\n", - "5 74.945\n", - "6 225.360\n", - "7 204.450\n", - "8 169.550\n", - "9 15.650\n", - "Name: 52 Week Low, dtype: float64\n" + "[13.40387996]\n" ] } ] @@ -301,31 +621,52 @@ { "cell_type": "code", "source": [ - "fig = plt.figure(figsize=(10,5))\n", - "plt.bar(name,price,color='blue',width=0.2)\n", - "plt.show()" + "print(regressor.coef_)" ], "metadata": { "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 + "base_uri": "https://localhost:8080/" }, - "id": "4Vx5h_Z_9Qxx", - "outputId": "6db8ebe6-45f6-4a28-d14d-67164beafe36" + "id": "SjGg7Cu-ghVv", + "outputId": "93d668e4-6a04-4949-ba71-17d4efa685d8" }, - "execution_count": null, + "execution_count": 25, "outputs": [ { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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\n" - }, - "metadata": { - "needs_background": "light" - } + "output_type": "stream", + "name": "stdout", + "text": [ + "[[1.39623434]]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "y_test_predict = regressor.predict(X_test)\n", + "print(y_test_predict)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RbQFKqd_nE6V", + "outputId": "3eb4a5da-80d9-4eab-ffd3-387b96952014" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[ 97.24775219]\n", + " [ 75.74574332]\n", + " [211.66915651]\n", + " [ 27.36622338]\n", + " [ 72.43666793]\n", + " [ 82.14049661]]\n" + ] } ] }, From ba0c2659fbb77f34d749fbd0c386a55bb9ad861f Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Thu, 8 Sep 2022 19:36:14 +0530 Subject: [PATCH 08/13] Git update check --- Finance.ipynb | 727 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 727 insertions(+) create mode 100644 Finance.ipynb diff --git a/Finance.ipynb b/Finance.ipynb new file mode 100644 index 0000000..cf5730f --- /dev/null +++ b/Finance.ipynb @@ -0,0 +1,727 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "collapsed_sections": [], + "mount_file_id": "1eVjWN0ysDmV2RReXznoIIT_fyNwrYv7n", + "authorship_tag": "ABX9TyP51gcOQnjIJkb4JDikMx/g", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "DK9OMf6Yi7T3" + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n" + ] + }, + { + "cell_type": "code", + "source": [ + "df = pd.read_csv('drive/MyDrive/financials.csv')\n", + "print(df.head())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GofWEpHll3zk", + "outputId": "68761701-37de-400b-e696-12ce7692f552" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Symbol Name Sector Price Price/Earnings \\\n", + "0 MMM 3M Company Industrials 222.89 24.31 \n", + "1 AOS A.O. Smith Corp Industrials 60.24 27.76 \n", + "2 ABT Abbott Laboratories Health Care 56.27 22.51 \n", + "3 ABBV AbbVie Inc. Health Care 108.48 19.41 \n", + "4 ACN Accenture plc Information Technology 150.51 25.47 \n", + "\n", + " Dividend Yield Earnings/Share 52 Week Low 52 Week High Market Cap \\\n", + "0 2.332862 7.92 259.77 175.490 1.387211e+11 \n", + "1 1.147959 1.70 68.39 48.925 1.078342e+10 \n", + "2 1.908982 0.26 64.60 42.280 1.021210e+11 \n", + "3 2.499560 3.29 125.86 60.050 1.813863e+11 \n", + "4 1.714470 5.44 162.60 114.820 9.876586e+10 \n", + "\n", + " EBITDA Price/Sales Price/Book \\\n", + "0 9.048000e+09 4.390271 11.34 \n", + "1 6.010000e+08 3.575483 6.35 \n", + "2 5.744000e+09 3.740480 3.19 \n", + "3 1.031000e+10 6.291571 26.14 \n", + "4 5.643228e+09 2.604117 10.62 \n", + "\n", + " SEC Filings \n", + "0 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "1 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "2 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "3 http://www.sec.gov/cgi-bin/browse-edgar?action... \n", + "4 http://www.sec.gov/cgi-bin/browse-edgar?action... \n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# New Section" + ], + "metadata": { + "id": "md0NhiY2Q8kQ" + } + }, + { + "cell_type": "code", + "source": [ + "print(df.info())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Yxt0MaG0m9_7", + "outputId": "08afdb32-0a95-4a06-c55c-42e9d1c9de26" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 505 entries, 0 to 504\n", + "Data columns (total 14 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Symbol 505 non-null object \n", + " 1 Name 505 non-null object \n", + " 2 Sector 505 non-null object \n", + " 3 Price 505 non-null float64\n", + " 4 Price/Earnings 503 non-null float64\n", + " 5 Dividend Yield 505 non-null float64\n", + " 6 Earnings/Share 505 non-null float64\n", + " 7 52 Week Low 505 non-null float64\n", + " 8 52 Week High 505 non-null float64\n", + " 9 Market Cap 505 non-null float64\n", + " 10 EBITDA 505 non-null float64\n", + " 11 Price/Sales 505 non-null float64\n", + " 12 Price/Book 497 non-null float64\n", + " 13 SEC Filings 505 non-null object \n", + "dtypes: float64(10), object(4)\n", + "memory usage: 55.4+ KB\n", + "None\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "df.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "okGiIBRVQvXO", + "outputId": "8f14d8d5-9ab2-4e0c-85d5-4f4c92b71fc4" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Symbol 0\n", + "Name 0\n", + "Sector 0\n", + "Price 0\n", + "Price/Earnings 2\n", + "Dividend Yield 0\n", + "Earnings/Share 0\n", + "52 Week Low 0\n", + "52 Week High 0\n", + "Market Cap 0\n", + "EBITDA 0\n", + "Price/Sales 0\n", + "Price/Book 8\n", + "SEC Filings 0\n", + "dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df = df.dropna().head(50)\n", + "df.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "M1Oi0fVuR_Qr", + "outputId": "26347261-540a-4c2e-9aa6-59242c67c9be" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Symbol 0\n", + "Name 0\n", + "Sector 0\n", + "Price 0\n", + "Price/Earnings 0\n", + "Dividend Yield 0\n", + "Earnings/Share 0\n", + "52 Week Low 0\n", + "52 Week High 0\n", + "Market Cap 0\n", + "EBITDA 0\n", + "Price/Sales 0\n", + "Price/Book 0\n", + "SEC Filings 0\n", + "dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "df1= df.loc[:,['52 Week Low','52 Week High']]\n", + "df1.head(5)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 215 + }, + "id": "X5vYdbYNSVEN", + "outputId": "c3acb53c-a151-4bfd-bdf1-27c508e69426" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " 52 Week Low 52 Week High\n", + "0 259.77 175.490\n", + "1 68.39 48.925\n", + "2 64.60 42.280\n", + "3 125.86 60.050\n", + "4 162.60 114.820" + ], + "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", + "
52 Week Low52 Week High
0259.77175.490
168.3948.925
264.6042.280
3125.8660.050
4162.60114.820
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "source": [ + "r,c = df.shape\n", + "print(r,c)" + ], + "metadata": { + "id": "YgSBvX_zq2XK", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "abf121d8-290d-4411-b206-5b6269ce12a7" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "505 14\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(df.describe())\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OPCtjBpj67Rz", + "outputId": "a36dafc0-56c3-4241-f036-a25f4629d42c" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Price Price/Earnings Dividend Yield Earnings/Share \\\n", + "count 20.000000 20.000000 20.000000 20.000000 \n", + "mean 106.510000 30.991000 1.480700 4.855000 \n", + "std 59.155562 37.957537 1.283868 4.239713 \n", + "min 10.060000 9.660000 0.000000 -1.720000 \n", + "25% 63.652500 18.192500 0.411724 1.667500 \n", + "50% 106.830000 23.365000 1.174186 4.415000 \n", + "75% 151.082500 27.527500 2.357123 7.552500 \n", + "max 222.890000 187.000000 4.961832 13.660000 \n", + "\n", + " 52 Week Low 52 Week High Market Cap EBITDA Price/Sales \\\n", + "count 20.000000 20.000000 2.000000e+01 2.000000e+01 20.000000 \n", + "mean 129.343500 82.828805 4.568229e+10 2.677373e+09 4.520701 \n", + "std 70.771182 47.168770 5.107358e+10 2.939704e+09 3.512549 \n", + "min 12.050000 9.700000 6.242378e+09 0.000000e+00 0.659514 \n", + "25% 73.598750 47.856250 1.069811e+10 6.647725e+08 1.732244 \n", + "50% 130.115000 73.805000 1.701399e+10 1.463200e+09 3.928424 \n", + "75% 179.977500 115.992500 6.803532e+10 3.285500e+09 5.963882 \n", + "max 259.770000 175.490000 1.813863e+11 1.031000e+10 13.092818 \n", + "\n", + " Price/Book \n", + "count 20.000000 \n", + "mean 6.511000 \n", + "std 6.675381 \n", + "min 1.530000 \n", + "25% 2.795000 \n", + "50% 3.450000 \n", + "75% 7.417500 \n", + "max 26.140000 \n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "name = df['Name'].head(10)\n", + "price = df['Price'].head(10)\n", + "high52 = df['52 Week High'].head(10)\n", + "low52 = df['52 Week Low'].head(10)\n" + ], + "metadata": { + "id": "pW0COy_N7q1h" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "fig = plt.figure(figsize=(10,5))\n", + "plt.bar(name,price,color='blue',width=0.2)\n", + "plt.show()" + ], + "metadata": { + "id": "4Vx5h_Z_9Qxx" + } + }, + { + "cell_type": "code", + "source": [ + "df.plot(x='52 Week High', y='52 Week Low', style='+')\n", + "plt.xlabel('52 Week High')\n", + "plt.ylabel('52 Week Low')\n", + "plt.show()" + ], + "metadata": { + "id": "LYHfixdzZqO_", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 279 + }, + "outputId": "6f093f48-24a3-4b35-99bf-7e3810f80e44" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdOElEQVR4nO3de5zVdb3v8ddbYYOSlsJIHARHPYAJEsI8ahjAKIO8VEoXtmZetj7C09a8deoB6Tm294PKOiXHdm2VjgZ22JUbrUjNILYelIHcgIRc4hJiwQO5ec2Sm5/zx+83vxbDzJrFuNasNbPez8djPea3vr/L+syPYT7z+14VEZiZmQEcVe4AzMyscjgpmJlZxknBzMwyTgpmZpZxUjAzs0y3cgfwdvTp0ydqa2vLHYaZWaeyfPny3RFR09K+Tp0UamtrWbZsWbnDMDPrVCS90No+Vx+ZmVnGScHMzDJOCmZmlunUbQot2b9/P1u3buXNN98sdyiW6tmzJyeffDLdu3cvdyhm1oYulxS2bt3KcccdR21tLZLKHU7Viwj27NnD1q1bOfXUU8sdjpm1octVH7355pv07t3bCaFCSKJ3795+cjMrshkLNpTkul0uKQBOCBXG/x5mxXfXwo0luW6XTApmZtY+TgolUFtby1lnncWIESOoq6vLyr/0pS9xxhlnMHz4cCZNmsQrr7xy2LmTJk3i5z//efZ+yJAhTJ8+PXv/yU9+kocffviIYxo/fnybA/0KOcbMymfGgg3UTn2U2qmPAmTbxaxKclJIFbt+7oknnmDlypWH/JKdMGECq1evZtWqVQwePJhvfOMbh503ZswYGhsbAdizZw+9evViyZIl2f4lS5bQ0NBQ1FjNrHO4ecJgttxxIVvuuBAg2755wuCifYaTQqpU9XO5Jk6cSLduSYev+vp6tm7detgxDQ0NWVJobGzkYx/7GLt27SIieP755znmmGN497vfzfz58xk9ejQjR47k05/+NH/+858BWL58OR/4wAcYNWoUH/nIR9i+ffsh13/rrbe46qqruO222wqK+aWXXuLiiy9m+PDh1NfXs2rVKgDOOussXnnlFSKC3r1788ADDwBwxRVXsGDBgvbdIDMrOyeFEpDExIkTGTVqFDNnzmzxmPvvv5/zzz//sPJRo0axevVq9u3bR2NjI6NHj2bIkCGsW7eOxsZGGhoa2L17N9OnT+c3v/kNK1asoK6ujjvvvJP9+/fzhS98gblz57J8+XKuvvpqbr311uzaBw4c4LLLLmPQoEGHVEnlc/vtt3P22WezatUqvv71r3PFFVcAyRPN4sWLWbNmDaeddhpPPfUU4CcZs45y47mDSnLdLjdO4UjMWLDhkCeEpnq6G88d9LYex55++mn69+/Pzp07mTBhAmeccQbnnHNOtv9rX/sa3bp147LLLjvs3B49ejB06FBWrFjB0qVL+fKXv8zmzZtpbGzk2WefZcyYMSxdupS1a9cyZswYAPbt28fo0aNZv349q1evZsKECQAcPHiQfv36Zde+9tprmTx58iGJopDv5aGHHgLgQx/6EHv27OG1115j3LhxLFq0iFNOOYXPf/7zzJw5k23btnHCCSfQq1evdt03MytcMauMcpXsSUHSAElPSForaY2kG9Pyr0raJmll+rog55xpkjZJWi/pI6WKrUmp6uf69+8PwEknncSkSZN45plnsn2zZs3ikUceYc6cOa121RwzZgyLFi3i9ddf54QTTqC+vp7GxsbsSSEimDBhAitXrmTlypWsXbuW++67j4hg6NChWflzzz3H/Pnzs+s2NDTwxBNPFGXMwDnnnMNTTz3FU089xfjx46mpqWHu3LmMGzfubV/bzMqnlNVHB4AvRsSZQD1wnaQz030zImJE+noMIN13CTAUOA/4V0lHlzC+knjjjTd4/fXXs+358+czbNgwAB5//HG+9a1vMW/ePI499thWr9HQ0MC9997Le9/7XgCGDx/O0qVL+eMf/8iwYcOor69n8eLFbNq0KfucDRs2MGTIEHbt2pU1TO/fv581a9Zk173mmmu44IILmDx5MgcOHCjo+xk3bhxz5swB4Mknn6RPnz4cf/zxDBgwgN27d7Nx40ZOO+00xo4dy7e//e1DnojMrPMpWfVRRGwHtqfbr0taB/TPc8pFwE8iYi/wvKRNwPuAJXnOKZpi1c/t2LGDSZMmAUkd/mc+8xnOO+88AK6//nr27t2bVe/U19dzzz33HHaNhoYGNm/ezLRp0wDo1q0bJ510EgMGDOCoo46ipqaGWbNmcemll7J3714Apk+fzuDBg5k7dy433HADr776KgcOHOCmm25i6NCh2bVvueUWXn31VS6//HLmzJnDUUcd+nfBhRdemM1R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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "X = pd.DataFrame(df['52 Week High'])\n", + "y = pd.DataFrame(df['52 Week Low'])" + ], + "metadata": { + "id": "U1xmlVfHf-_n" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3, random_state=1)\n", + "X_train.shape\n", + "X_test.shape\n", + "y_train.shape\n", + "y_test.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JSZwIBN4gIRc", + "outputId": "8cdb2485-7070-439b-ce6b-0c4353cc9de6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(6, 1)" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error\n", + "regressor = LinearRegression()\n", + "regressor.fit(X_train, y_train)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1m0Yo9MjgbHj", + "outputId": "e70527c8-d55b-447a-bd64-edd9c1bb2e21" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "LinearRegression()" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(regressor.intercept_)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "eWcF3q32geV7", + "outputId": "0e971114-891d-425d-e176-1e5745182166" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[13.40387996]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(regressor.coef_)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "SjGg7Cu-ghVv", + "outputId": "93d668e4-6a04-4949-ba71-17d4efa685d8" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[1.39623434]]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "y_test_predict = regressor.predict(X_test)\n", + "print(y_test_predict)" + ], + "metadata": { + "id": "RbQFKqd_nE6V", + "outputId": "3eb4a5da-80d9-4eab-ffd3-387b96952014", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[ 97.24775219]\n", + " [ 75.74574332]\n", + " [211.66915651]\n", + " [ 27.36622338]\n", + " [ 72.43666793]\n", + " [ 82.14049661]]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "plotdata = pd.DataFrame({\n", + "\n", + " \"2019\":[68,73,80,79],\n", + "\n", + " \"2020\":[73,78,80,85]},\n", + "\n", + " index=[\"Django\", \"Gafur\", \"Tommy\", \"Ronnie\"])\n", + "\n", + "plotdata.plot(kind=\"bar\",figsize=(15, 8))\n", + "\n", + "plt.title(\"FIFA ratings\")\n", + "\n", + "plt.xlabel(\"Footballer\")\n", + "\n", + "plt.ylabel(\"Ratings\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 555 + }, + "id": "nb0bXhSEA9Sg", + "outputId": "075f6143-a96f-4747-e053-3d4479e3fe43" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0, 0.5, 'Ratings')" + ] + }, + "metadata": {}, + "execution_count": 3 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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1M3Sd77znZxwwgl55Stfmf333/8G26pqh3euPOKII/KCF7wgj33sY3Pb2942Rx11VPbaa69pRgYAAJYJZ+p20dVXX50TTjghT33qU3P88ccnSQ455JBs2bIlSbJly5YcfPDBO3yfk046Keedd14+/OEP54ADDsg973nPqeYGAACWB6VuF3R3TjrppBxxxBF53vOed/34Mccck/Xr1ydJ1q9fn2OPPXaH73X55ZcnSb72ta/l7LPPzlOe8pTphAYAAJaV6u5ZZ9ihNWvW9MaNG28wdsEFF+SII46YUaI55557bh71qEflfve7X251q7l+/OIXvzhHH310TjzxxHzta1/LXe9615x11lk58MADc9lll2XNmjW58sorc6tb3Sq3u93tsmnTpuy///551KMelSuuuCJ77713Xv7yl2ft2rU/9nm3hO8MAAAsvao6r7vXbG+ba+p2wSMf+cjcVCk+55xzfmzsTne6UzZv3rzd/T/ykY/s1mwAAMCewfRLAACAgSl1AAAAAzP9EgAA9nSn3X7WCXa/07416wRLxpk6AACAgSl1AAAAA1PqAAAABrZ8rqnb3fOAFzAH95JLLsnTn/70bN26NVWVk08+Oaecckq+/vWv54lPfGIuvvjirF69OmeddVYOOOCAvOlNb8pLXvKSdHf222+/vPa1r82RRx6ZJHnf+96XU045Jddee22e+cxn5tRTT9293wcAAFiWnKnbBStWrMjLXvaybNq0KR/72Mfymte8Jps2bcrpp5+etWvX5sILL8zatWtz+umnJ0kOP/zwfOhDH8rnPve5/MEf/EFOPvnkJMm1116bZz3rWXnve9+bTZs25c1vfnM2bdo0y68GAAAMQqnbBYceemge+MAHJkn222+/HHHEEbn00kuzYcOGrFu3Lkmybt26vPOd70ySPPzhD88BBxyQJHnoQx96/YPIP/GJT+Tud7977na3u2WfffbJk570pGzYsGEG3wgAABiNUrebXHzxxTn//PNz9NFHZ+vWrTn00EOTJHe6052ydevWH9v/zDPPzOMe97gkyaWXXpo73/nO129btWpVLr300qUJDgAADG35XFM3Q9/5zndywgkn5JWvfGX233//G2yrqlTVDcY+8IEP5Mwzz8y55567lDEBAIBlyJm6XXT11VfnhBNOyFOf+tQcf/zxSZJDDjkkW7ZsSZJs2bIl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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + } + ] +} \ No newline at end of file From ee122b87537be358f831bda8141c29b67184d9dd Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Thu, 8 Sep 2022 19:37:26 +0530 Subject: [PATCH 09/13] Github Update --- ankit/Finance.ipynb | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/ankit/Finance.ipynb b/ankit/Finance.ipynb index 979b37e..c61fa67 100644 --- a/ankit/Finance.ipynb +++ b/ankit/Finance.ipynb @@ -6,7 +6,7 @@ "provenance": [], "collapsed_sections": [], "mount_file_id": "1eVjWN0ysDmV2RReXznoIIT_fyNwrYv7n", - "authorship_tag": "ABX9TyNgrne2Ua5CWcgLGV4SLlyr", + "authorship_tag": "ABX9TyP51gcOQnjIJkb4JDikMx/g", "include_colab_link": true }, "kernelspec": { @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "id": "DK9OMf6Yi7T3" }, @@ -198,7 +198,7 @@ "id": "M1Oi0fVuR_Qr", "outputId": "26347261-540a-4c2e-9aa6-59242c67c9be" }, - "execution_count": 17, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -427,7 +427,7 @@ "id": "OPCtjBpj67Rz", "outputId": "a36dafc0-56c3-4241-f036-a25f4629d42c" }, - "execution_count": 14, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -507,7 +507,7 @@ }, "outputId": "6f093f48-24a3-4b35-99bf-7e3810f80e44" }, - "execution_count": 19, + "execution_count": null, "outputs": [ { "output_type": "display_data", @@ -532,7 +532,7 @@ "metadata": { "id": "U1xmlVfHf-_n" }, - "execution_count": 20, + "execution_count": null, "outputs": [] }, { @@ -552,7 +552,7 @@ "id": "JSZwIBN4gIRc", "outputId": "8cdb2485-7070-439b-ce6b-0c4353cc9de6" }, - "execution_count": 22, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -581,7 +581,7 @@ "id": "1m0Yo9MjgbHj", "outputId": "e70527c8-d55b-447a-bd64-edd9c1bb2e21" }, - "execution_count": 23, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -607,7 +607,7 @@ "id": "eWcF3q32geV7", "outputId": "0e971114-891d-425d-e176-1e5745182166" }, - "execution_count": 24, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -630,7 +630,7 @@ "id": "SjGg7Cu-ghVv", "outputId": "93d668e4-6a04-4949-ba71-17d4efa685d8" }, - "execution_count": 25, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -648,13 +648,13 @@ "print(y_test_predict)" ], "metadata": { + "id": "RbQFKqd_nE6V", + "outputId": "3eb4a5da-80d9-4eab-ffd3-387b96952014", "colab": { "base_uri": "https://localhost:8080/" - }, - "id": "RbQFKqd_nE6V", - "outputId": "3eb4a5da-80d9-4eab-ffd3-387b96952014" + } }, - "execution_count": 27, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -675,8 +675,6 @@ "source": [ "plotdata = pd.DataFrame({\n", "\n", - " \"2018\":[57,67,77,83],\n", - "\n", " \"2019\":[68,73,80,79],\n", "\n", " \"2020\":[73,78,80,85]},\n", @@ -697,9 +695,9 @@ "height": 555 }, "id": "nb0bXhSEA9Sg", - "outputId": "1fcd135a-fc34-489a-f6eb-9c3a7abc8327" + "outputId": "075f6143-a96f-4747-e053-3d4479e3fe43" }, - "execution_count": null, + "execution_count": 3, "outputs": [ { "output_type": "execute_result", @@ -709,7 +707,7 @@ ] }, "metadata": {}, - "execution_count": 52 + "execution_count": 3 }, { "output_type": "display_data", @@ -717,7 +715,7 @@ "text/plain": [ "
" ], - "image/png": "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lvPPPz8LFiy437aq2u2dK7/+9a9n3bp1ufHGG/O1r30t3/72t/NHf/RH44wMAADMEUrdXrr77rtz2mmn5eUvf3lOPfXUJMkRRxyRLVu2JEm2bNmSww8/fJfv8Vd/9Vc59thjs2jRosyfPz+nnnpq/u7v/m7s2QEAgOFT6vZCd+ess87KsmXLcs4559w3fvLJJ2ft2rVJkrVr1+aUU07Z5fscffTRufLKK3PnnXemu3PFFVdk2bJlY80OAADMDdXdk86wWytWrOj169ffb+y6666bePH5xCc+kR/5kR/J8uXLs99+U/34jW98Y0466aScfvrp+epXv5pjjjkml112WQ499NDcfPPNWbFiRW6//fbst99+efSjH50NGzZkwYIFed3rXpf3vve9mTdvXp7+9Kfn4osvzg/8wA/c7/MeDt8ZAACYfVV1VXev2Ok2pW449sXvDAAA7LrUOf0SAABgwJQ6AACAAZs36QAAAMDcsHzt8klHuM81q66ZdIRZY6YOAABgwJQ6AACAAVPqAAAABmzuXFN37sEP8ft9c7e73HTTTTnjjDOydevWVFVWr16ds88+O7fddlte8pKXZOPGjVm6dGkuu+yyLFy4MF/60pdy5pln5rOf/Wze8IY35DWvec197/U7v/M7ecc73pHuzi/8wi/k1a9+9UP7fQAAgDnJTN1emDdvXt7ylrdkw4YNufLKK3PhhRdmw4YNOe+887Jy5cpcf/31WblyZc4777wkyaGHHpoLLrjgfmUuSa699tq84x3vyGc+85l8/vOfz4c//OHccMMNk/hKAADAwCh1e2Hx4sU54YQTkiQHHXRQli1bls2bN2fdunVZtWpVkmTVqlW5/PLLkySHH354TjzxxMyfP/9+73PdddflpJNOyiMf+cjMmzcvP/ZjP5YPfOADs/tlAACAQVLqHiIbN27M1VdfnZNOOilbt27N4sWLkyRHHnlktm7dustjn/rUp+bjH/94br311tx55535sz/7s9x0002zERsAABi4uXNN3QTdcccdOe2003L++ednwYIF99tWVamqXR6/bNmyvPa1r83zn//8POpRj8rxxx+f/ffff5yRAQCAOcJM3V66++67c9ppp+XlL395Tj311CTJEUcckS1btiRJtmzZksMPP3y373PWWWflqquuyt/+7d9m4cKFeeITnzjW3AAAwNxgpm4vdHfOOuusLFu2LOecc8594yeffHLWrl2bNWvWZO3atTnllFN2+1633HJLDj/88Hz1q1/NBz7wgVx55ZXjjA4AwF5YuuZPJx3hPhvPe+GkIzBhc6fUTeMRBA+1T37yk7n00kuzfPnyHH/88UmSN77xjVmzZk1OP/30XHLJJTnmmGNy2WWXJUluvvnmrFixIrfffnv222+/nH/++dmwYUMWLFiQ0047Lbfeemvmz5+fCy+8MIcccsisfx8AAGB45k6pm4DnPve56e6dbrviiiv+xdiRRx6ZTZs27XT/j3/84w9pNgAAYN/gmjoAAIABU+oAAAAGTKkDAAAYMKUOAABgwJQ6AACAAVPqAAAABmzOPNJg+drlD+n7XbPqmt3uc9NNN+WMM87I1q1bU1VZvXp1zj777Nx22215yUteko0bN2bp0qW57LLLsnDhwrzrXe/Km970pnR3DjrooLz97W/PcccdlyT58z//85x99tnZvn17XvnKV2bNmjUP6fcBAADmJjN1e2HevHl5y1vekg0bNuTKK6/MhRdemA0bNuS8887LypUrc/3112flypU577zzkiTHHntsPvaxj+Waa67Jr//6r2f16tVJku3bt+cXf/EX85GPfCQbNmzIu9/97mzYsGGSXw0AABiIsZa6qvrlqvpiVV1bVe+uqgOr6tiq+nRV3VBV762qA8aZYZwWL16cE044IUly0EEHZdmyZdm8eXPWrVuXVatWJUlWrVqVyy+/PEny7Gc/OwsXLkySPPOZz7zvQeSf+cxn8vjHPz6Pe9zjcsABB+SlL31p1q1bN4FvBAAADM3YSl1VHZXkl5Ks6O6nJtk/yUuTvCnJW7v78Um+nuSscWWYTRs3bszVV1+dk046KVu3bs3ixYuTJEceeWS2bt36L/a/5JJL8tM//dNJks2bN+exj33sfduWLFmSzZs3z05wAABg0MZ9Td28JI+oqruTPDLJliTPS/LvRtvXJjk3ydvHnGOs7rjjjpx22mk5//zzs2DBgvttq6pU1f3GPvrRj+aSSy7JJz7xidmMCQAAzEFjK3XdvbmqfivJV5N8J8lfJLkqyTe6+57RbpuSHLWz46tqdZLVSXL00UePK+Zeu/vuu3Paaafl5S9/eU499dQkyRFHHJEtW7Zk8eLF2bJlSw4//PD79v/CF76QV77ylfnIRz6Sww47LEly1FFH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\n" + "image/png": "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1M3Sd77znZxwwgl55Stfmf333/8G26pqh3euPOKII/KCF7wgj33sY3Pb2942Rx11VPbaa69pRgYAAJYJZ+p20dVXX50TTjghT33qU3P88ccnSQ455JBs2bIlSbJly5YcfPDBO3yfk046Keedd14+/OEP54ADDsg973nPqeYGAACWB6VuF3R3TjrppBxxxBF53vOed/34Mccck/Xr1ydJ1q9fn2OPPXaH73X55ZcnSb72ta/l7LPPzlOe8pTphAYAAJaV6u5ZZ9ihNWvW9MaNG28wdsEFF+SII46YUaI55557bh71qEflfve7X251q7l+/OIXvzhHH310TjzxxHzta1/LXe9615x11lk58MADc9lll2XNmjW58sorc6tb3Sq3u93tsmnTpuy///551KMelSuuuCJ77713Xv7yl2ft2rU/9nm3hO8MAAAsvao6r7vXbG+ba+p2wSMf+cjcVCk+55xzfmzsTne6UzZv3rzd/T/ykY/s1mwAAMCewfRLAACAgSl1AAAAAzP9EgAA9nSn3X7WCXa/07416wRLxpk6AACAgSl1AAAAA1PqAAAABrZ8rqnb3fOAFzAH95JLLsnTn/70bN26NVWVk08+Oaecckq+/vWv54lPfGIuvvjirF69OmeddVYOOOCAvOlNb8pLXvKSdHf222+/vPa1r82RRx6ZJHnf+96XU045Jddee22e+cxn5tRTT9293wcAAFiWnKnbBStWrMjLXvaybNq0KR/72Mfymte8Jps2bcrpp5+etWvX5sILL8zatWtz+umnJ0kOP/zwfOhDH8rnPve5/MEf/EFOPvnkJMm1116bZz3rWXnve9+bTZs25c1vfnM2bdo0y68GAAAMQqnbBYceemge+MAHJkn222+/HHHEEbn00kuzYcOGrFu3Lkmybt26vPOd70ySPPzhD88BBxyQJHnoQx96/YPIP/GJT+Tud7977na3u2WfffbJk570pGzYsGEG3wgAABiNUrebXHzxxTn//PNz9NFHZ+vWrTn00EOTJHe6052ydevWH9v/zDPPzOMe97gkyaWXXpo73/nO129btWpVLr300qUJDgAADG35XFM3Q9/5zndywgkn5JWvfGX233//G2yrqlTVDcY+8IEP5Mwzz8y55567lDEBAIBlyJm6XXT11VfnhBNOyFOf+tQcf/zxSZJDDjkkW7ZsSZJs2bIl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\n" }, "metadata": { "needs_background": "light" From ba4e722990c6d04718181e4cf2ee9d91874f0285 Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Fri, 9 Sep 2022 22:35:35 +0530 Subject: [PATCH 10/13] #day 3 commit --- Track 2/Day 3/Day_3.ipynb | 348 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 348 insertions(+) create mode 100644 Track 2/Day 3/Day_3.ipynb diff --git a/Track 2/Day 3/Day_3.ipynb b/Track 2/Day 3/Day_3.ipynb new file mode 100644 index 0000000..a9c747a --- /dev/null +++ b/Track 2/Day 3/Day_3.ipynb @@ -0,0 +1,348 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "authorship_tag": "ABX9TyNxK+I6rATHOhmd15QScltA", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "4lUVvajYLx4c" + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "source": [ + "age=[23,18,27,16,40,29,24,21,34,32]\n", + "employ=['unemployed','employed','employed','unemployed','employed','employed','unemployed','unemployed','employed','employed']\n", + "salary=[0,100000,10000,0,4000000,1500000,0,0,500000,2000000]\n", + "buy=[1,0,1,0,0,1,1,1,0,1]\n", + "\n", + "df=pd.DataFrame(\n", + " {\n", + " 'age':age,\n", + " 'employment_type':employ,\n", + " 'salary':salary,\n", + " 'buy':buy\n", + " }\n", + ")\n", + "\n", + "employment = pd.get_dummies(df['employment_type'], drop_first = True)\n", + "df = pd.concat([df, employment], axis = 1)\n", + "df.drop(['employment_type'], axis = 1, inplace = True)\n", + "df.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "pW8z6ZXhL9eH", + "outputId": "f189df19-570d-41a8-e642-7cca8ecdcf90" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " age salary buy unemployed\n", + "0 23 0 1 1\n", + "1 18 100000 0 0\n", + "2 27 10000 1 0\n", + "3 16 0 0 1\n", + "4 40 4000000 0 0" + ], + "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", + "
agesalarybuyunemployed
023011
11810000000
2271000010
316001
440400000000
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "source": [ + "y_data = df['buy'] \n", + "x_data = df.drop('buy', axis = 1)" + ], + "metadata": { + "id": "oU1kP0kfM39W" + }, + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "x_training_data, x_test_data, y_training_data, y_test_data = train_test_split(x_data, y_data, test_size = 0.3) " + ], + "metadata": { + "id": "9JplWP0jNCn2" + }, + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "model = LogisticRegression()" + ], + "metadata": { + "id": "r1BWi2UzNF6A" + }, + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "model.fit(x_training_data, y_training_data)\n", + "predictions = model.predict(x_test_data)" + ], + "metadata": { + "id": "2pMix4CfNJp9" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import confusion_matrix\n", + "print (confusion_matrix(y_test_data,predictions))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "0JjEXIkENM2_", + "outputId": "62938c29-c5ab-4700-9696-bde143f4ca16" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[[0 0]\n", + " [3 0]]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import seaborn as sns\n", + "sns.regplot(x=x_data['age'], y=y_data, data=df, logistic=True, ci=None)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 296 + }, + "id": "j1aCmc4DNRc8", + "outputId": "4402a79a-fdb8-4b2b-9474-cecca7e73ddd" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 12 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ] + } + ] +} \ No newline at end of file From 680ca9e51576962a7b5b6c499d81fa9827d9a68f Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Sun, 11 Sep 2022 01:42:16 +0530 Subject: [PATCH 11/13] #day 4 --- Track2/Day 4/Day4.ipynb | 710 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 710 insertions(+) create mode 100644 Track2/Day 4/Day4.ipynb diff --git a/Track2/Day 4/Day4.ipynb b/Track2/Day 4/Day4.ipynb new file mode 100644 index 0000000..d32057b --- /dev/null +++ b/Track2/Day 4/Day4.ipynb @@ -0,0 +1,710 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "mount_file_id": "16k6mMI25jgjzEG8sbRz8SEZK3B-qiyX3", + "authorship_tag": "ABX9TyPLks1eLypVhdGvX3uUJK3n", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "id": "ylakPrhrIbP-" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "train_data = pd.read_csv('drive/MyDrive/train-data.csv')\n", + "test_data = pd.read_csv('drive/MyDrive/test-data.csv')" + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "axaDMpyOBEP7" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from google.colab import drive\n", + "drive.mount('/content/drive')" + ], + "metadata": { + "id": "XBsVbEhVwmvt" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "train_data = train_data.iloc[:,1:]\n", + "train_data.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "Zp58juILxA1P", + "outputId": "28236289-b84a-4186-e04c-c76106233d8d" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Name Location Year Kilometers_Driven \\\n", + "0 Maruti Wagon R LXI CNG Mumbai 2010 72000 \n", + "1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 41000 \n", + "2 Honda Jazz V Chennai 2011 46000 \n", + "3 Maruti Ertiga VDI Chennai 2012 87000 \n", + "4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 40670 \n", + "\n", + " Fuel_Type Transmission Owner_Type Mileage Engine Power Seats \\\n", + "0 CNG Manual First 26.6 km/kg 998 CC 58.16 bhp 5.0 \n", + "1 Diesel Manual First 19.67 kmpl 1582 CC 126.2 bhp 5.0 \n", + "2 Petrol Manual First 18.2 kmpl 1199 CC 88.7 bhp 5.0 \n", + "3 Diesel Manual First 20.77 kmpl 1248 CC 88.76 bhp 7.0 \n", + "4 Diesel Automatic Second 15.2 kmpl 1968 CC 140.8 bhp 5.0 \n", + "\n", + " Price \n", + "0 1.75 \n", + "1 12.50 \n", + "2 4.50 \n", + "3 6.00 \n", + "4 17.74 " + ], + "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", + "
NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
0Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6 km/kg998 CC58.16 bhp5.01.75
1Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.67 kmpl1582 CC126.2 bhp5.012.50
2Honda Jazz VChennai201146000PetrolManualFirst18.2 kmpl1199 CC88.7 bhp5.04.50
3Maruti Ertiga VDIChennai201287000DieselManualFirst20.77 kmpl1248 CC88.76 bhp7.06.00
4Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.2 kmpl1968 CC140.8 bhp5.017.74
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "source": [ + "train_data.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6g-bcG8WxGmL", + "outputId": "b07cb1b1-3a10-4c99-a45a-d90378d25895" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(5911, 12)" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ] + }, + { + "cell_type": "code", + "source": [ + "train_data.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "a7a2eGYlxPg2", + "outputId": "5b044a8e-436b-4e58-ce61-b5e10bce2dc2" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Name 0\n", + "Location 0\n", + "Year 0\n", + "Kilometers_Driven 0\n", + "Fuel_Type 0\n", + "Transmission 0\n", + "Owner_Type 0\n", + "Mileage 2\n", + "Engine 35\n", + "Power 35\n", + "Seats 37\n", + "Price 0\n", + "dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "source": [ + "train_data.drop([\"Name\"],axis=1,inplace=True)\n", + "train_data.drop([\"Mileage\"],axis=1,inplace=True)\n", + "train_data.drop([\"Engine\"],axis=1,inplace=True)\n", + "train_data.drop([\"Power\"],axis=1,inplace=True)\n", + "train_data.info()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "O0SmKRiPBF08", + "outputId": "8a74f982-2052-4960-e459-f1e660c14e7c" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 5911 entries, 0 to 5910\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Location 5911 non-null object \n", + " 1 Year 5911 non-null int64 \n", + " 2 Kilometers_Driven 5911 non-null int64 \n", + " 3 Fuel_Type 5911 non-null object \n", + " 4 Transmission 5911 non-null object \n", + " 5 Owner_Type 5911 non-null object \n", + " 6 Seats 5874 non-null float64\n", + " 7 Price 5911 non-null float64\n", + "dtypes: float64(2), int64(2), object(4)\n", + "memory usage: 369.6+ KB\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "var = 'Location'\n", + "var1= 'Company'\n", + "train_data[var].value_counts()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "m_a-gEIUBbMG", + "outputId": "ddc74cfe-3160-4e84-a7d3-9de505f5e528" + }, + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Mumbai 780\n", + "Hyderabad 719\n", + "Kochi 648\n", + "Coimbatore 630\n", + "Pune 603\n", + "Delhi 550\n", + "Kolkata 525\n", + "Chennai 478\n", + "Jaipur 405\n", + "Bangalore 352\n", + "Ahmedabad 221\n", + "Name: Location, dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "Location = train_data[[var]]\n", + "Location = pd.get_dummies(Location,drop_first=True)\n", + "Location.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 250 + }, + "id": "wxT97RTxBgGn", + "outputId": "694c6ae7-2dc7-4027-8ad9-51febbe63aeb" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Location_Bangalore Location_Chennai Location_Coimbatore Location_Delhi \\\n", + "0 0 0 0 0 \n", + "1 0 0 0 0 \n", + "2 0 1 0 0 \n", + "3 0 1 0 0 \n", + "4 0 0 1 0 \n", + "\n", + " Location_Hyderabad Location_Jaipur Location_Kochi Location_Kolkata \\\n", + "0 0 0 0 0 \n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 0 0 \n", + "4 0 0 0 0 \n", + "\n", + " Location_Mumbai Location_Pune \n", + "0 1 0 \n", + "1 0 1 \n", + "2 0 0 \n", + "3 0 0 \n", + "4 0 0 " + ], + "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", + "
Location_BangaloreLocation_ChennaiLocation_CoimbatoreLocation_DelhiLocation_HyderabadLocation_JaipurLocation_KochiLocation_KolkataLocation_MumbaiLocation_Pune
00000000010
10000000001
20100000000
30100000000
40010000000
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "source": [ + "Company= train_data[[var1]]\n", + "Company = pd.get_dummies(Company,drop_first=True)\n", + "Company.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 345 + }, + "id": "d_WPOKlfBjUl", + "outputId": "a2a42e9a-db74-4b5a-9c95-1dbe99ec92a3" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "error", + "ename": "KeyError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mCompany\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mtrain_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvar1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mCompany\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_dummies\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mCompany\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdrop_first\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mCompany\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3462\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3463\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3464\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_listlike_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3466\u001b[0m \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_listlike_indexer\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1312\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_indexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reindex_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1313\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1314\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_read_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1316\u001b[0m if needs_i8_conversion(ax.dtype) or isinstance(\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_validate_read_indexer\u001b[0;34m(self, key, indexer, axis)\u001b[0m\n\u001b[1;32m 1372\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0muse_interval_msg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1373\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1374\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"None of [{key}] are in the [{axis_name}]\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1375\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1376\u001b[0m \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mensure_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmissing_mask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnonzero\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: \"None of [Index(['Company'], dtype='object')] are in the [columns]\"" + ] + } + ] + } + ] +} \ No newline at end of file From 90b6a1045326a9e85e04f34259e2acba4080cb9a Mon Sep 17 00:00:00 2001 From: Ankit Date: Sun, 11 Sep 2022 01:49:32 +0530 Subject: [PATCH 12/13] Updated file --- Track2/Day 4/Day4.ipynb | 710 ---------------------------------------- 1 file changed, 710 deletions(-) delete mode 100644 Track2/Day 4/Day4.ipynb diff --git a/Track2/Day 4/Day4.ipynb b/Track2/Day 4/Day4.ipynb deleted file mode 100644 index d32057b..0000000 --- a/Track2/Day 4/Day4.ipynb +++ /dev/null @@ -1,710 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [], - "mount_file_id": "16k6mMI25jgjzEG8sbRz8SEZK3B-qiyX3", - "authorship_tag": "ABX9TyPLks1eLypVhdGvX3uUJK3n", - "include_colab_link": true - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } - }, - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "id": "ylakPrhrIbP-" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "train_data = pd.read_csv('drive/MyDrive/train-data.csv')\n", - "test_data = pd.read_csv('drive/MyDrive/test-data.csv')" - ] - }, - { - "cell_type": "code", - "source": [], - "metadata": { - "id": "axaDMpyOBEP7" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ], - "metadata": { - "id": "XBsVbEhVwmvt" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "train_data = train_data.iloc[:,1:]\n", - "train_data.head()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "Zp58juILxA1P", - "outputId": "28236289-b84a-4186-e04c-c76106233d8d" - }, - "execution_count": 14, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - " Name Location Year Kilometers_Driven \\\n", - "0 Maruti Wagon R LXI CNG Mumbai 2010 72000 \n", - "1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 41000 \n", - "2 Honda Jazz V Chennai 2011 46000 \n", - "3 Maruti Ertiga VDI Chennai 2012 87000 \n", - "4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 40670 \n", - "\n", - " Fuel_Type Transmission Owner_Type Mileage Engine Power Seats \\\n", - "0 CNG Manual First 26.6 km/kg 998 CC 58.16 bhp 5.0 \n", - "1 Diesel Manual First 19.67 kmpl 1582 CC 126.2 bhp 5.0 \n", - "2 Petrol Manual First 18.2 kmpl 1199 CC 88.7 bhp 5.0 \n", - "3 Diesel Manual First 20.77 kmpl 1248 CC 88.76 bhp 7.0 \n", - "4 Diesel Automatic Second 15.2 kmpl 1968 CC 140.8 bhp 5.0 \n", - "\n", - " Price \n", - "0 1.75 \n", - "1 12.50 \n", - "2 4.50 \n", - "3 6.00 \n", - "4 17.74 " - ], - "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", - "
NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
0Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6 km/kg998 CC58.16 bhp5.01.75
1Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.67 kmpl1582 CC126.2 bhp5.012.50
2Honda Jazz VChennai201146000PetrolManualFirst18.2 kmpl1199 CC88.7 bhp5.04.50
3Maruti Ertiga VDIChennai201287000DieselManualFirst20.77 kmpl1248 CC88.76 bhp7.06.00
4Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.2 kmpl1968 CC140.8 bhp5.017.74
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ] - }, - "metadata": {}, - "execution_count": 14 - } - ] - }, - { - "cell_type": "code", - "source": [ - "train_data.shape" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6g-bcG8WxGmL", - "outputId": "b07cb1b1-3a10-4c99-a45a-d90378d25895" - }, - "execution_count": 15, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(5911, 12)" - ] - }, - "metadata": {}, - "execution_count": 15 - } - ] - }, - { - "cell_type": "code", - "source": [ - "train_data.isnull().sum()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "a7a2eGYlxPg2", - "outputId": "5b044a8e-436b-4e58-ce61-b5e10bce2dc2" - }, - "execution_count": 16, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "Name 0\n", - "Location 0\n", - "Year 0\n", - "Kilometers_Driven 0\n", - "Fuel_Type 0\n", - "Transmission 0\n", - "Owner_Type 0\n", - "Mileage 2\n", - "Engine 35\n", - "Power 35\n", - "Seats 37\n", - "Price 0\n", - "dtype: int64" - ] - }, - "metadata": {}, - "execution_count": 16 - } - ] - }, - { - "cell_type": "code", - "source": [ - "train_data.drop([\"Name\"],axis=1,inplace=True)\n", - "train_data.drop([\"Mileage\"],axis=1,inplace=True)\n", - "train_data.drop([\"Engine\"],axis=1,inplace=True)\n", - "train_data.drop([\"Power\"],axis=1,inplace=True)\n", - "train_data.info()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "O0SmKRiPBF08", - "outputId": "8a74f982-2052-4960-e459-f1e660c14e7c" - }, - "execution_count": 17, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "\n", - "RangeIndex: 5911 entries, 0 to 5910\n", - "Data columns (total 8 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Location 5911 non-null object \n", - " 1 Year 5911 non-null int64 \n", - " 2 Kilometers_Driven 5911 non-null int64 \n", - " 3 Fuel_Type 5911 non-null object \n", - " 4 Transmission 5911 non-null object \n", - " 5 Owner_Type 5911 non-null object \n", - " 6 Seats 5874 non-null float64\n", - " 7 Price 5911 non-null float64\n", - "dtypes: float64(2), int64(2), object(4)\n", - "memory usage: 369.6+ KB\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "var = 'Location'\n", - "var1= 'Company'\n", - "train_data[var].value_counts()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "m_a-gEIUBbMG", - "outputId": "ddc74cfe-3160-4e84-a7d3-9de505f5e528" - }, - "execution_count": 18, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "Mumbai 780\n", - "Hyderabad 719\n", - "Kochi 648\n", - "Coimbatore 630\n", - "Pune 603\n", - "Delhi 550\n", - "Kolkata 525\n", - "Chennai 478\n", - "Jaipur 405\n", - "Bangalore 352\n", - "Ahmedabad 221\n", - "Name: Location, dtype: int64" - ] - }, - "metadata": {}, - "execution_count": 18 - } - ] - }, - { - "cell_type": "code", - "source": [ - "Location = train_data[[var]]\n", - "Location = pd.get_dummies(Location,drop_first=True)\n", - "Location.head()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 250 - }, - "id": "wxT97RTxBgGn", - "outputId": "694c6ae7-2dc7-4027-8ad9-51febbe63aeb" - }, - "execution_count": 19, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - " Location_Bangalore Location_Chennai Location_Coimbatore Location_Delhi \\\n", - "0 0 0 0 0 \n", - "1 0 0 0 0 \n", - "2 0 1 0 0 \n", - "3 0 1 0 0 \n", - "4 0 0 1 0 \n", - "\n", - " Location_Hyderabad Location_Jaipur Location_Kochi Location_Kolkata \\\n", - "0 0 0 0 0 \n", - "1 0 0 0 0 \n", - "2 0 0 0 0 \n", - "3 0 0 0 0 \n", - "4 0 0 0 0 \n", - "\n", - " Location_Mumbai Location_Pune \n", - "0 1 0 \n", - "1 0 1 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 " - ], - "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", - "
Location_BangaloreLocation_ChennaiLocation_CoimbatoreLocation_DelhiLocation_HyderabadLocation_JaipurLocation_KochiLocation_KolkataLocation_MumbaiLocation_Pune
00000000010
10000000001
20100000000
30100000000
40010000000
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ] - }, - "metadata": {}, - "execution_count": 19 - } - ] - }, - { - "cell_type": "code", - "source": [ - "Company= train_data[[var1]]\n", - "Company = pd.get_dummies(Company,drop_first=True)\n", - "Company.head()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 345 - }, - "id": "d_WPOKlfBjUl", - "outputId": "a2a42e9a-db74-4b5a-9c95-1dbe99ec92a3" - }, - "execution_count": 20, - "outputs": [ - { - "output_type": "error", - "ename": "KeyError", - "evalue": "ignored", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mCompany\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mtrain_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvar1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mCompany\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_dummies\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mCompany\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdrop_first\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mCompany\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3462\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3463\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3464\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_listlike_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3466\u001b[0m \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_listlike_indexer\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1312\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_indexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reindex_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1313\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1314\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_read_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1316\u001b[0m if needs_i8_conversion(ax.dtype) or isinstance(\n", - "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_validate_read_indexer\u001b[0;34m(self, key, indexer, axis)\u001b[0m\n\u001b[1;32m 1372\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0muse_interval_msg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1373\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1374\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"None of [{key}] are in the [{axis_name}]\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1375\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1376\u001b[0m \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mensure_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmissing_mask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnonzero\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: \"None of [Index(['Company'], dtype='object')] are in the [columns]\"" - ] - } - ] - } - ] -} \ No newline at end of file From 080ababa8e182c6c7372bbe84f30290b9df7c890 Mon Sep 17 00:00:00 2001 From: Ankit455 <44242184+Ankit455@users.noreply.github.com> Date: Sun, 11 Sep 2022 01:51:58 +0530 Subject: [PATCH 13/13] #day 4 --- Track 2/Day 4/Day4.ipynb | 710 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 710 insertions(+) create mode 100644 Track 2/Day 4/Day4.ipynb diff --git a/Track 2/Day 4/Day4.ipynb b/Track 2/Day 4/Day4.ipynb new file mode 100644 index 0000000..aa10847 --- /dev/null +++ b/Track 2/Day 4/Day4.ipynb @@ -0,0 +1,710 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "mount_file_id": "16k6mMI25jgjzEG8sbRz8SEZK3B-qiyX3", + "authorship_tag": "ABX9TyPLks1eLypVhdGvX3uUJK3n", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ylakPrhrIbP-" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "train_data = pd.read_csv('drive/MyDrive/train-data.csv')\n", + "test_data = pd.read_csv('drive/MyDrive/test-data.csv')" + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "axaDMpyOBEP7" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from google.colab import drive\n", + "drive.mount('/content/drive')" + ], + "metadata": { + "id": "XBsVbEhVwmvt" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "train_data = train_data.iloc[:,1:]\n", + "train_data.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "Zp58juILxA1P", + "outputId": "28236289-b84a-4186-e04c-c76106233d8d" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Name Location Year Kilometers_Driven \\\n", + "0 Maruti Wagon R LXI CNG Mumbai 2010 72000 \n", + "1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 41000 \n", + "2 Honda Jazz V Chennai 2011 46000 \n", + "3 Maruti Ertiga VDI Chennai 2012 87000 \n", + "4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 40670 \n", + "\n", + " Fuel_Type Transmission Owner_Type Mileage Engine Power Seats \\\n", + "0 CNG Manual First 26.6 km/kg 998 CC 58.16 bhp 5.0 \n", + "1 Diesel Manual First 19.67 kmpl 1582 CC 126.2 bhp 5.0 \n", + "2 Petrol Manual First 18.2 kmpl 1199 CC 88.7 bhp 5.0 \n", + "3 Diesel Manual First 20.77 kmpl 1248 CC 88.76 bhp 7.0 \n", + "4 Diesel Automatic Second 15.2 kmpl 1968 CC 140.8 bhp 5.0 \n", + "\n", + " Price \n", + "0 1.75 \n", + "1 12.50 \n", + "2 4.50 \n", + "3 6.00 \n", + "4 17.74 " + ], + "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", + "
NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
0Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6 km/kg998 CC58.16 bhp5.01.75
1Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.67 kmpl1582 CC126.2 bhp5.012.50
2Honda Jazz VChennai201146000PetrolManualFirst18.2 kmpl1199 CC88.7 bhp5.04.50
3Maruti Ertiga VDIChennai201287000DieselManualFirst20.77 kmpl1248 CC88.76 bhp7.06.00
4Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.2 kmpl1968 CC140.8 bhp5.017.74
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "source": [ + "train_data.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6g-bcG8WxGmL", + "outputId": "b07cb1b1-3a10-4c99-a45a-d90378d25895" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(5911, 12)" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ] + }, + { + "cell_type": "code", + "source": [ + "train_data.isnull().sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "a7a2eGYlxPg2", + "outputId": "5b044a8e-436b-4e58-ce61-b5e10bce2dc2" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Name 0\n", + "Location 0\n", + "Year 0\n", + "Kilometers_Driven 0\n", + "Fuel_Type 0\n", + "Transmission 0\n", + "Owner_Type 0\n", + "Mileage 2\n", + "Engine 35\n", + "Power 35\n", + "Seats 37\n", + "Price 0\n", + "dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "source": [ + "train_data.drop([\"Name\"],axis=1,inplace=True)\n", + "train_data.drop([\"Mileage\"],axis=1,inplace=True)\n", + "train_data.drop([\"Engine\"],axis=1,inplace=True)\n", + "train_data.drop([\"Power\"],axis=1,inplace=True)\n", + "train_data.info()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "O0SmKRiPBF08", + "outputId": "8a74f982-2052-4960-e459-f1e660c14e7c" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 5911 entries, 0 to 5910\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Location 5911 non-null object \n", + " 1 Year 5911 non-null int64 \n", + " 2 Kilometers_Driven 5911 non-null int64 \n", + " 3 Fuel_Type 5911 non-null object \n", + " 4 Transmission 5911 non-null object \n", + " 5 Owner_Type 5911 non-null object \n", + " 6 Seats 5874 non-null float64\n", + " 7 Price 5911 non-null float64\n", + "dtypes: float64(2), int64(2), object(4)\n", + "memory usage: 369.6+ KB\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "var = 'Location'\n", + "var1= 'Company'\n", + "train_data[var].value_counts()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "m_a-gEIUBbMG", + "outputId": "ddc74cfe-3160-4e84-a7d3-9de505f5e528" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Mumbai 780\n", + "Hyderabad 719\n", + "Kochi 648\n", + "Coimbatore 630\n", + "Pune 603\n", + "Delhi 550\n", + "Kolkata 525\n", + "Chennai 478\n", + "Jaipur 405\n", + "Bangalore 352\n", + "Ahmedabad 221\n", + "Name: Location, dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "Location = train_data[[var]]\n", + "Location = pd.get_dummies(Location,drop_first=True)\n", + "Location.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 250 + }, + "id": "wxT97RTxBgGn", + "outputId": "694c6ae7-2dc7-4027-8ad9-51febbe63aeb" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Location_Bangalore Location_Chennai Location_Coimbatore Location_Delhi \\\n", + "0 0 0 0 0 \n", + "1 0 0 0 0 \n", + "2 0 1 0 0 \n", + "3 0 1 0 0 \n", + "4 0 0 1 0 \n", + "\n", + " Location_Hyderabad Location_Jaipur Location_Kochi Location_Kolkata \\\n", + "0 0 0 0 0 \n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 0 0 \n", + "4 0 0 0 0 \n", + "\n", + " Location_Mumbai Location_Pune \n", + "0 1 0 \n", + "1 0 1 \n", + "2 0 0 \n", + "3 0 0 \n", + "4 0 0 " + ], + "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", + "
Location_BangaloreLocation_ChennaiLocation_CoimbatoreLocation_DelhiLocation_HyderabadLocation_JaipurLocation_KochiLocation_KolkataLocation_MumbaiLocation_Pune
00000000010
10000000001
20100000000
30100000000
40010000000
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "source": [ + "Company= train_data[[var1]]\n", + "Company = pd.get_dummies(Company,drop_first=True)\n", + "Company.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 345 + }, + "id": "d_WPOKlfBjUl", + "outputId": "a2a42e9a-db74-4b5a-9c95-1dbe99ec92a3" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "KeyError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mCompany\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0mtrain_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvar1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mCompany\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_dummies\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mCompany\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdrop_first\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mCompany\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3462\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_iterator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3463\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3464\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_listlike_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3466\u001b[0m \u001b[0;31m# take() does not accept boolean indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_listlike_indexer\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1312\u001b[0m \u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_indexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reindex_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1313\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1314\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_read_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeyarr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1316\u001b[0m if needs_i8_conversion(ax.dtype) or isinstance(\n", + "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_validate_read_indexer\u001b[0;34m(self, key, indexer, axis)\u001b[0m\n\u001b[1;32m 1372\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0muse_interval_msg\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1373\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1374\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"None of [{key}] are in the [{axis_name}]\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1375\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1376\u001b[0m \u001b[0mnot_found\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mensure_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mmissing_mask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnonzero\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: \"None of [Index(['Company'], dtype='object')] are in the [columns]\"" + ] + } + ] + } + ] +} \ No newline at end of file