From eed301a13189c7153021fc87f8cb24012f52982c Mon Sep 17 00:00:00 2001
From: southjohn64 <61773763+southjohn64@users.noreply.github.com>
Date: Tue, 9 Nov 2021 08:34:32 +0200
Subject: [PATCH] Created using Colaboratory
---
Copy_of_HW_3.ipynb | 478 +++++++++++++++++++++++++++++++++++++++------
1 file changed, 415 insertions(+), 63 deletions(-)
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",
+ " subject \n",
+ " ItemCount \n",
+ " year \n",
+ " \n",
+ " \n",
+ " Romance fiction \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Historical fiction \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Fantasy fiction \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Fiction television programs ... \n",
+ " 2 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Thrillers Fiction \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Friendship Juvenile fiction ... \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Detective and mystery fiction ... \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Thrillers Fiction \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Fiction television programs ... \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ " \n",
+ " Friendship Juvenile fiction ... \n",
+ " 1 \n",
+ " 2017 \n",
+ " \n",
+ "
\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