diff --git a/Copy_of_HW_3.ipynb b/Copy_of_HW_3.ipynb index d6427db..aacaee3 100644 --- a/Copy_of_HW_3.ipynb +++ b/Copy_of_HW_3.ipynb @@ -53,19 +53,19 @@ "base_uri": "https://localhost:8080/" }, "id": "0UjnuJREuaeD", - "outputId": "8810ccac-63d3-4307-866c-770bf1111221" + "outputId": "23d87730-0bed-479a-b356-e9c04f1732e9" }, "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')" ], - "execution_count": 3, + "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n" + "Mounted at /content/drive\n" ] } ] @@ -77,7 +77,7 @@ "base_uri": "https://localhost:8080/" }, "id": "i-H32MHYucGO", - "outputId": "1016c944-52a3-4afb-ec2c-5a31a0a0ba82" + "outputId": "32a6d625-bff8-4fff-af2b-a5bf3efa73c4" }, "source": [ "\n", @@ -100,24 +100,23 @@ "!cp /content/drive/MyDrive/kaggle.json /root/.kaggle/kaggle.json\n", "!chmod 600 /root/.kaggle/kaggle.json" ], - "execution_count": 4, + "execution_count": 2, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: kaggle in /usr/local/lib/python3.7/dist-packages (1.5.12)\n", - "Requirement already satisfied: urllib3 in /usr/local/lib/python3.7/dist-packages (from kaggle) (1.24.3)\n", - "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from kaggle) (2.23.0)\n", "Requirement already satisfied: python-slugify in /usr/local/lib/python3.7/dist-packages (from kaggle) (5.0.2)\n", - "Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from kaggle) (2021.5.30)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from kaggle) (2.23.0)\n", + "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.7/dist-packages (from kaggle) (1.15.0)\n", + "Requirement already satisfied: urllib3 in /usr/local/lib/python3.7/dist-packages (from kaggle) (1.24.3)\n", "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.7/dist-packages (from kaggle) (2.8.2)\n", + "Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from kaggle) (2021.5.30)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from kaggle) (4.62.3)\n", - "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.7/dist-packages (from kaggle) (1.15.0)\n", "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.7/dist-packages (from python-slugify->kaggle) (1.3)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->kaggle) (3.0.4)\n", - "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->kaggle) (2.10)\n", - "mkdir: cannot create directory ‘/root/.kaggle/’: File exists\n" + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->kaggle) (2.10)\n" ] } ] @@ -130,82 +129,100 @@ "height": 1000 }, "id": "meleE9A3udoQ", - "outputId": "a5daa86c-47e9-4484-a73e-cbd7a57ca52f" + "outputId": "9c6bb5b6-9939-4307-8042-b62d07c7b84e" }, "source": [ "!pip install turicreate" ], - "execution_count": 4, + "execution_count": 3, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "\u001b[K |████████████████████████████████| 86.4 MB 19 kB/s \n", - "\u001b[?25hCollecting prettytable==0.7.2\n", - " Downloading prettytable-0.7.2.zip (28 kB)\n", - "Requirement already satisfied: requests>=2.9.1 in /usr/local/lib/python3.7/dist-packages (from turicreate) (2.23.0)\n", + "Collecting turicreate\n", + " Downloading turicreate-6.4.1-cp37-cp37m-manylinux1_x86_64.whl (92.0 MB)\n", + "\u001b[K |████████████████████████████████| 92.0 MB 13 kB/s \n", + "\u001b[?25hCollecting numba<0.51.0\n", + " Downloading numba-0.50.1-cp37-cp37m-manylinux2014_x86_64.whl (3.6 MB)\n", + "\u001b[K |████████████████████████████████| 3.6 MB 27.2 MB/s \n", + "\u001b[?25hRequirement already satisfied: pandas>=0.23.2 in /usr/local/lib/python3.7/dist-packages (from turicreate) (1.1.5)\n", + "Collecting resampy==0.2.1\n", + " Downloading resampy-0.2.1.tar.gz (322 kB)\n", + "\u001b[K |████████████████████████████████| 322 kB 46.8 MB/s \n", + "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from turicreate) (1.19.5)\n", + "Requirement already satisfied: decorator>=4.0.9 in /usr/local/lib/python3.7/dist-packages (from turicreate) (4.4.2)\n", "Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.7/dist-packages (from turicreate) (1.15.0)\n", + "Collecting prettytable==0.7.2\n", + " Downloading prettytable-0.7.2.zip (28 kB)\n", + "Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from turicreate) (1.4.1)\n", + "Collecting coremltools==3.3\n", + " Downloading coremltools-3.3-cp37-none-manylinux1_x86_64.whl (3.5 MB)\n", + "\u001b[K |████████████████████████████████| 3.5 MB 30.9 MB/s \n", + "\u001b[?25hCollecting tensorflow<2.1.0,>=2.0.0\n", + " Downloading tensorflow-2.0.4-cp37-cp37m-manylinux2010_x86_64.whl (86.4 MB)\n", + "\u001b[K |████████████████████████████████| 86.4 MB 58 kB/s \n", + "\u001b[?25hRequirement already satisfied: requests>=2.9.1 in /usr/local/lib/python3.7/dist-packages (from turicreate) (2.23.0)\n", "Requirement already satisfied: pillow>=5.2.0 in /usr/local/lib/python3.7/dist-packages (from turicreate) (7.1.2)\n", "Requirement already satisfied: protobuf>=3.1.0 in /usr/local/lib/python3.7/dist-packages (from coremltools==3.3->turicreate) (3.17.3)\n", "Collecting llvmlite<0.34,>=0.33.0.dev0\n", " Downloading llvmlite-0.33.0-cp37-cp37m-manylinux1_x86_64.whl (18.3 MB)\n", - "\u001b[K |████████████████████████████████| 18.3 MB 80 kB/s \n", + "\u001b[K |████████████████████████████████| 18.3 MB 85 kB/s \n", "\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from numba<0.51.0->turicreate) (57.4.0)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.23.2->turicreate) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.23.2->turicreate) (2018.9)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.23.2->turicreate) (2.8.2)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests>=2.9.1->turicreate) (2021.5.30)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.9.1->turicreate) (2.10)\n", "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests>=2.9.1->turicreate) (1.24.3)\n", "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests>=2.9.1->turicreate) (3.0.4)\n", - "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.9.1->turicreate) (2.10)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests>=2.9.1->turicreate) (2021.5.30)\n", - "Collecting tensorflow-estimator<2.1.0,>=2.0.0\n", - " Downloading tensorflow_estimator-2.0.1-py2.py3-none-any.whl (449 kB)\n", - "\u001b[K |████████████████████████████████| 449 kB 60.2 MB/s \n", - "\u001b[?25hRequirement already satisfied: absl-py>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.12.0)\n", - "Collecting numpy\n", - " Downloading numpy-1.18.5-cp37-cp37m-manylinux1_x86_64.whl (20.1 MB)\n", - "\u001b[K |████████████████████████████████| 20.1 MB 12.5 MB/s \n", - "\u001b[?25hCollecting gast==0.2.2\n", + "Requirement already satisfied: astor>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.8.1)\n", + "Collecting h5py<=2.10.0\n", + " Downloading h5py-2.10.0-cp37-cp37m-manylinux1_x86_64.whl (2.9 MB)\n", + "\u001b[K |████████████████████████████████| 2.9 MB 21.1 MB/s \n", + "\u001b[?25hRequirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (1.1.0)\n", + "Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.37.0)\n", + "Collecting gast==0.2.2\n", " Downloading gast-0.2.2.tar.gz (10 kB)\n", "Requirement already satisfied: google-pasta>=0.1.6 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.2.0)\n", - "Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.37.0)\n", - "Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (1.1.0)\n", "Collecting tensorboard<2.1.0,>=2.0.0\n", " Downloading tensorboard-2.0.2-py3-none-any.whl (3.8 MB)\n", - "\u001b[K |████████████████████████████████| 3.8 MB 48.4 MB/s \n", - "\u001b[?25hCollecting keras-applications>=1.0.8\n", + "\u001b[K |████████████████████████████████| 3.8 MB 53.2 MB/s \n", + "\u001b[?25hRequirement already satisfied: wrapt>=1.11.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (1.12.1)\n", + "Collecting keras-applications>=1.0.8\n", " Downloading Keras_Applications-1.0.8-py3-none-any.whl (50 kB)\n", - "\u001b[K |████████████████████████████████| 50 kB 3.1 MB/s \n", - "\u001b[?25hRequirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (3.3.0)\n", - "Requirement already satisfied: wrapt>=1.11.1 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (1.12.1)\n", + "\u001b[K |████████████████████████████████| 50 kB 2.2 MB/s \n", + "\u001b[?25hRequirement already satisfied: absl-py>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.12.0)\n", "Requirement already satisfied: grpcio>=1.8.6 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (1.41.0)\n", + "Collecting numpy\n", + " Downloading numpy-1.18.5-cp37-cp37m-manylinux1_x86_64.whl (20.1 MB)\n", + "\u001b[K |████████████████████████████████| 20.1 MB 79.7 MB/s \n", + "\u001b[?25hRequirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (3.3.0)\n", "Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (1.1.2)\n", - "Collecting h5py<=2.10.0\n", - " Downloading h5py-2.10.0-cp37-cp37m-manylinux1_x86_64.whl (2.9 MB)\n", - "\u001b[K |████████████████████████████████| 2.9 MB 36.7 MB/s \n", - "\u001b[?25hRequirement already satisfied: astor>=0.6.0 in /usr/local/lib/python3.7/dist-packages (from tensorflow<2.1.0,>=2.0.0->turicreate) (0.8.1)\n", + "Collecting tensorflow-estimator<2.1.0,>=2.0.0\n", + " Downloading tensorflow_estimator-2.0.1-py2.py3-none-any.whl (449 kB)\n", + "\u001b[K |████████████████████████████████| 449 kB 56.1 MB/s \n", + "\u001b[?25hRequirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (3.3.4)\n", "Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (1.0.1)\n", - "Requirement already satisfied: google-auth<2,>=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (1.35.0)\n", - "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (3.3.4)\n", "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (0.4.6)\n", + "Requirement already satisfied: google-auth<2,>=1.6.3 in /usr/local/lib/python3.7/dist-packages (from tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (1.35.0)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (0.2.8)\n", - "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (4.7.2)\n", "Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (4.2.4)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (4.7.2)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.7/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (1.3.0)\n", "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from markdown>=2.6.8->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (4.8.1)\n", "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/dist-packages (from pyasn1-modules>=0.2.1->google-auth<2,>=1.6.3->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (0.4.8)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (3.1.1)\n", - "Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->markdown>=2.6.8->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (3.7.4.3)\n", "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->markdown>=2.6.8->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (3.6.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->markdown>=2.6.8->tensorboard<2.1.0,>=2.0.0->tensorflow<2.1.0,>=2.0.0->turicreate) (3.7.4.3)\n", "Building wheels for collected packages: prettytable, resampy, gast\n", " Building wheel for prettytable (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for prettytable: filename=prettytable-0.7.2-py3-none-any.whl size=13714 sha256=50cffc338408dc0757faeb2b677f8d7631529cc7ce86ae046d70795b3aa9532b\n", + " Created wheel for prettytable: filename=prettytable-0.7.2-py3-none-any.whl size=13714 sha256=8294916be8356ddd111627ebdc9857f727adb0d600c32f2a3ec7de280b7e27cc\n", " Stored in directory: /root/.cache/pip/wheels/b2/7f/f6/f180315b584f00445045ff1699b550fa895d09471337ce21c6\n", " Building wheel for resampy (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for resampy: filename=resampy-0.2.1-py3-none-any.whl size=320860 sha256=ed858e4dcabf713e78740b01b2bb508d960c8856a66b88064a5282ee36296243\n", + " Created wheel for resampy: filename=resampy-0.2.1-py3-none-any.whl size=320860 sha256=cbc914dd62f5a9bec6285300428fc6c9fb8bd082a743c10d374ca6ea93e4a3d4\n", " Stored in directory: /root/.cache/pip/wheels/71/74/53/d5ceb7c5ee7a168c7d106041863e71ac3273f4a4677743a284\n", " Building wheel for gast (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for gast: filename=gast-0.2.2-py3-none-any.whl size=7554 sha256=382c9ccab85c52f9f986689a81221133d60c27c126c5f35701c13830e03f87c4\n", + " Created wheel for gast: filename=gast-0.2.2-py3-none-any.whl size=7554 sha256=732d58765b60a5a85f6777d3a788a777b727964c31d324ace0c1b7fb8ba4af3e\n", " Stored in directory: /root/.cache/pip/wheels/21/7f/02/420f32a803f7d0967b48dd823da3f558c5166991bfd204eef3\n", "Successfully built prettytable resampy gast\n", "Installing collected packages: numpy, llvmlite, h5py, tensorflow-estimator, tensorboard, numba, keras-applications, gast, tensorflow, resampy, prettytable, coremltools, turicreate\n", @@ -311,7 +328,7 @@ "!unzip ./datasets/library-collection/*.zip -d ./datasets/library-collection\n", "!ls ./datasets/library-collection" ], - "execution_count": 5, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -345,7 +362,7 @@ "sf = tc.SFrame.read_csv(\"/content/datasets/library-collection/library-collection-inventory.csv\")\n", "sf" ], - "execution_count": 6, + "execution_count": null, "outputs": [ { "output_type": "display_data", @@ -2007,7 +2024,7 @@ "sf['year'] = sf['PublicationYear'].apply(lambda s: get_year(s))\n", "sf['year']" ], - "execution_count": 7, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -2033,7 +2050,7 @@ "?sf.materialize\n", "sf.materialize()" ], - "execution_count": 8, + "execution_count": null, "outputs": [] }, { @@ -2044,7 +2061,7 @@ "source": [ "sf_gt_2017 = sf[sf['year'] >= 2017]\n" ], - "execution_count": 9, + "execution_count": null, "outputs": [] }, { @@ -2067,7 +2084,7 @@ "#sf2 = sf2.unique() \n", "sf2" ], - "execution_count": 10, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -2229,7 +2246,7 @@ "sf2 = sf2.stack(\"subject_list\", new_column_name=\"subject\") \n", "sf2['subject']" ], - "execution_count": 11, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -2265,7 +2282,7 @@ " return sf_by_subject_most_Common\n", "most_popular_book(sf2,'Mystery Fiction')" ], - "execution_count": 12, + "execution_count": null, "outputs": [ { "output_type": "execute_result", @@ -2370,7 +2387,7 @@ "sf2_fiction = sf2_subject[sf2_subject.apply(lambda row: 'Fiction'.lower() in row['subject'].lower())]\n", "#sf2_fiction.num_rows()" ], - "execution_count": 13, + "execution_count": null, "outputs": [] }, { @@ -2387,7 +2404,7 @@ "sf2_fiction_sorted = g.sort('ItemCount', ascending=False )\n", "sf2_fiction_sorted.print_rows(10)" ], - "execution_count": 14, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -2421,7 +2438,7 @@ "source": [ "top10_subject = sf2_fiction_sorted[:10]['subject'] # list of the top 10 subjects\n" ], - "execution_count": 15, + "execution_count": null, "outputs": [] }, { @@ -2434,7 +2451,7 @@ "import pandas as pd\n", "import matplotlib.pyplot as plt" ], - "execution_count": 16, + "execution_count": null, "outputs": [] }, { @@ -2445,7 +2462,7 @@ "source": [ "sf2_fiction_top10 = sf2_subject[sf2_subject.apply(lambda row: row['subject'] in top10_subject)]" ], - "execution_count": 17, + "execution_count": null, "outputs": [] }, { @@ -2464,13 +2481,114 @@ { "cell_type": "code", "metadata": { - "id": "uNPGJ9CEm6p0" + "colab": { + "base_uri": "https://localhost:8080/", + "height": 364 + }, + "id": "uNPGJ9CEm6p0", + "outputId": "7ce4f21d-1dad-415c-80fe-422a57ad2c0e" }, "source": [ "sf2_fiction_top10" ], "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
subjectItemCountyear
Romance fiction12017
Historical fiction12017
Fantasy fiction12017
Fiction television
programs ...
22017
Thrillers Fiction12017
Friendship Juvenile
fiction ...
12017
Detective and mystery
fiction ...
12017
Thrillers Fiction12017
Fiction television
programs ...
12017
Friendship Juvenile
fiction ...
12017
\n", + "[2345831 rows x 3 columns]
Note: Only the head of the SFrame is printed.
You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns.\n", + "
" + ], + "text/plain": [ + "Columns:\n", + "\tsubject\tstr\n", + "\tItemCount\tint\n", + "\tyear\tint\n", + "\n", + "Rows: 2345831\n", + "\n", + "Data:\n", + "+-------------------------------+-----------+------+\n", + "| subject | ItemCount | year |\n", + "+-------------------------------+-----------+------+\n", + "| Romance fiction | 1 | 2017 |\n", + "| Historical fiction | 1 | 2017 |\n", + "| Fantasy fiction | 1 | 2017 |\n", + "| Fiction television programs | 2 | 2017 |\n", + "| Thrillers Fiction | 1 | 2017 |\n", + "| Friendship Juvenile fiction | 1 | 2017 |\n", + "| Detective and mystery fiction | 1 | 2017 |\n", + "| Thrillers Fiction | 1 | 2017 |\n", + "| Fiction television programs | 1 | 2017 |\n", + "| Friendship Juvenile fiction | 1 | 2017 |\n", + "+-------------------------------+-----------+------+\n", + "[2345831 rows x 3 columns]\n", + "Note: Only the head of the SFrame is printed.\n", + "You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns." + ] + }, + "metadata": {}, + "execution_count": 19 + } + ] }, { "cell_type": "code", @@ -2577,10 +2695,244 @@ "id": "HNtgDQZE0P2y" }, "source": [ - "" + "!mkdir ./datasets\n", + "!mkdir ./datasets/sjr/\n", + "!wget -O ./datasets/sjr/sjr2018.csv https://www.scimagojr.com/journalrank.php?out=xls" ], "execution_count": null, "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "EXUyH7-bSZEu" + }, + "source": [ + "import turicreate as tc\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline" + ], + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "id": "uJOHuNfwSKJk", + "outputId": "8f0cc685-67a7-4856-aac0-b684eb318930" + }, + "source": [ + "sf = tc.SFrame.read_csv(\"./datasets/sjr/sjr2018.csv\", delimiter=\";\")\n" + ], + "execution_count": 49, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "
Finished parsing file /content/datasets/sjr/sjr2018.csv
" + ], + "text/plain": [ + "Finished parsing file /content/datasets/sjr/sjr2018.csv" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/html": [ + "
Parsing completed. Parsed 100 lines in 0.449465 secs.
" + ], + "text/plain": [ + "Parsing completed. Parsed 100 lines in 0.449465 secs." + ] + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "------------------------------------------------------\n", + "Inferred types from first 100 line(s) of file as \n", + "column_type_hints=[int,int,str,str,str,str,str,int,int,int,int,int,int,str,str,str,str,str,str,str]\n", + "If parsing fails due to incorrect types, you can correct\n", + "the inferred type list above and pass it to read_csv in\n", + "the column_type_hints argument\n", + "------------------------------------------------------\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/html": [ + "
Finished parsing file /content/datasets/sjr/sjr2018.csv
" + ], + "text/plain": [ + "Finished parsing file /content/datasets/sjr/sjr2018.csv" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/html": [ + "
Parsing completed. Parsed 32952 lines in 0.26651 secs.
" + ], + "text/plain": [ + "Parsing completed. Parsed 32952 lines in 0.26651 secs." + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iAwb1livSM_z" + }, + "source": [ + "df_sjr =sf.to_dataframe()\n", + "df_sjr.drop(df_sjr[df_sjr['SJR Best Quartile'] =='-'].index, inplace=True)\n" + ], + "execution_count": 50, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + }, + "id": "DDiqnPltSO7B", + "outputId": "01d31872-3276-4179-aba8-f8b1b761c620" + }, + "source": [ + "sns.displot(df_sjr, x=\"SJR Best Quartile\", y='H index')\n" + ], + "execution_count": 51, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 51 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "R2xo7M4LUsl1", + "outputId": "f83f841c-6e94-42f6-9879-e947a6c38319" + }, + "source": [ + "df_sjr['H index'].max()" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1226" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kSdk2SMiSPK2" + }, + "source": [ + "g = sns.FacetGrid(df_sjr, col=\"SJR Best Quartile\", margin_titles=True, sharex=True) # this will create a grid\n", + "g.map(sns.distplot, \"H index\", color=\"steelblue\")" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "zfBX4JuwVEMQ" + }, + "source": [ + "sns.displot(df_sjr['H index'], vertical=True, kde=False,hue='SJR Best Quartile') # KDE =True - draw gaussian kernel density estimate" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 323 + }, + "id": "tQvcm171YuHn", + "outputId": "48ac5413-b4ca-49a0-ffd8-d8b964c7b013" + }, + "source": [ + "sns.displot(df_sjr, x='H index', hue=\"SJR Best Quartile\", stat=\"density\",bins=20,col=\"SJR Best Quartile\")\n" + ], + "execution_count": 53, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 53 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ] } ] } \ No newline at end of file