{ "cells": [ { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 4, "hidden": false, "row": 0, "width": 4 }, "report_default": { "hidden": false } } } } }, "source": [ "# Project: Wrangling and Analyze Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Gathering\n", "In the cell below, gather **all** three pieces of data for this project and load them in the notebook. **Note:** the methods required to gather each data are different.\n", "1. Directly download the WeRateDogs Twitter archive data (twitter_archive_enhanced.csv)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "#importing the necessary libraries\n", "import numpy as np\n", "import pandas as pd\n", "import requests\n", "import os\n", "import tweepy\n", "import json\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "hidden": true }, "report_default": { "hidden": true } } } } }, "outputs": [], "source": [ "#reading and checking the csv file\n", "df1=pd.read_csv('twitter-archive-enhanced.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Use the Requests library to download the tweet image prediction (image_predictions.tsv)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#downloading the image_predictions file\n", "folder='twitter'\n", "if not os.path.exists(folder):\n", " os.makedirs(folder)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "url=' https://d17h27t6h515a5.cloudfront.net/topher/2017/August/599fd2ad_image-predictions/image-predictions.tsv'\n", "response=requests.get(url)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "#writing the downloaded doc to a file so we can access it\n", "with open(os.path.join(folder, url.split('/')[-1]), mode='wb')as file:\n", " file.write(response.content)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "#accessing and viewing the tsv file\n", "df2= pd.read_csv('image-predictions.tsv', sep='\\t')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Use the Tweepy library to query additional data via the Twitter API (tweet_json.txt)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "#Loading the json file into a dataframe\n", "new_list = [] #an empty list\n", "\n", "with open('tweet-json.txt') as file:\n", " for tweet in file:\n", " data = json.loads(tweet)\n", " tweet_id=data['id']\n", " retweet_count=data['retweet_count']\n", " favorite_count=data['favorite_count']\n", " \n", " new_list.append({\"tweet_id\": tweet_id, \"retweet_count\": int(retweet_count),\n", " \"favourite_count\": favorite_count})\n", " \n", "df3=pd.DataFrame(new_list, columns= ['tweet_id', 'retweet_count', 'favourite_count'])\n" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 4, "height": 4, "hidden": false, "row": 28, "width": 4 }, "report_default": { "hidden": false } } } } }, "source": [ "## Assessing Data\n", "In this section, detect and document at least **eight (8) quality issues and two (2) tidiness issue**. You must use **both** visual assessment\n", "programmatic assessement to assess the data.\n", "\n", "**Note:** pay attention to the following key points when you access the data.\n", "\n", "* You do not need to gather the tweets beyond August 1st, 2017. You can, but note that you won't be able to gather the image predictions for these tweets since you don't have access to the algorithm used.\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idin_reply_to_status_idin_reply_to_user_idtimestampsourcetextretweeted_status_idretweeted_status_user_idretweeted_status_timestampexpanded_urlsrating_numeratorrating_denominatornamedoggoflooferpupperpuppo
0892420643555336193NaNNaN2017-08-01 16:23:56 +0000<a href=\"http://twitter.com/download/iphone\" r...This is Phineas. He's a mystical boy. Only eve...NaNNaNNaNhttps://twitter.com/dog_rates/status/892420643...1310PhineasNoneNoneNoneNone
1892177421306343426NaNNaN2017-08-01 00:17:27 +0000<a href=\"http://twitter.com/download/iphone\" r...This is Tilly. She's just checking pup on you....NaNNaNNaNhttps://twitter.com/dog_rates/status/892177421...1310TillyNoneNoneNoneNone
2891815181378084864NaNNaN2017-07-31 00:18:03 +0000<a href=\"http://twitter.com/download/iphone\" r...This is Archie. He is a rare Norwegian Pouncin...NaNNaNNaNhttps://twitter.com/dog_rates/status/891815181...1210ArchieNoneNoneNoneNone
3891689557279858688NaNNaN2017-07-30 15:58:51 +0000<a href=\"http://twitter.com/download/iphone\" r...This is Darla. She commenced a snooze mid meal...NaNNaNNaNhttps://twitter.com/dog_rates/status/891689557...1310DarlaNoneNoneNoneNone
4891327558926688256NaNNaN2017-07-29 16:00:24 +0000<a href=\"http://twitter.com/download/iphone\" r...This is Franklin. He would like you to stop ca...NaNNaNNaNhttps://twitter.com/dog_rates/status/891327558...1210FranklinNoneNoneNoneNone
\n", "
" ], "text/plain": [ " tweet_id in_reply_to_status_id in_reply_to_user_id \\\n", "0 892420643555336193 NaN NaN \n", "1 892177421306343426 NaN NaN \n", "2 891815181378084864 NaN NaN \n", "3 891689557279858688 NaN NaN \n", "4 891327558926688256 NaN NaN \n", "\n", " timestamp \\\n", "0 2017-08-01 16:23:56 +0000 \n", "1 2017-08-01 00:17:27 +0000 \n", "2 2017-07-31 00:18:03 +0000 \n", "3 2017-07-30 15:58:51 +0000 \n", "4 2017-07-29 16:00:24 +0000 \n", "\n", " source \\\n", "0 \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idjpg_urlimg_nump1p1_confp1_dogp2p2_confp2_dogp3p3_confp3_dog
0666020888022790149https://pbs.twimg.com/media/CT4udn0WwAA0aMy.jpg1Welsh_springer_spaniel0.465074Truecollie0.156665TrueShetland_sheepdog0.061428True
1666029285002620928https://pbs.twimg.com/media/CT42GRgUYAA5iDo.jpg1redbone0.506826Trueminiature_pinscher0.074192TrueRhodesian_ridgeback0.072010True
2666033412701032449https://pbs.twimg.com/media/CT4521TWwAEvMyu.jpg1German_shepherd0.596461Truemalinois0.138584Truebloodhound0.116197True
3666044226329800704https://pbs.twimg.com/media/CT5Dr8HUEAA-lEu.jpg1Rhodesian_ridgeback0.408143Trueredbone0.360687Trueminiature_pinscher0.222752True
4666049248165822465https://pbs.twimg.com/media/CT5IQmsXIAAKY4A.jpg1miniature_pinscher0.560311TrueRottweiler0.243682TrueDoberman0.154629True
.......................................
2070891327558926688256https://pbs.twimg.com/media/DF6hr6BUMAAzZgT.jpg2basset0.555712TrueEnglish_springer0.225770TrueGerman_short-haired_pointer0.175219True
2071891689557279858688https://pbs.twimg.com/media/DF_q7IAWsAEuuN8.jpg1paper_towel0.170278FalseLabrador_retriever0.168086Truespatula0.040836False
2072891815181378084864https://pbs.twimg.com/media/DGBdLU1WsAANxJ9.jpg1Chihuahua0.716012Truemalamute0.078253Truekelpie0.031379True
2073892177421306343426https://pbs.twimg.com/media/DGGmoV4XsAAUL6n.jpg1Chihuahua0.323581TruePekinese0.090647Truepapillon0.068957True
2074892420643555336193https://pbs.twimg.com/media/DGKD1-bXoAAIAUK.jpg1orange0.097049Falsebagel0.085851Falsebanana0.076110False
\n", "

2075 rows × 12 columns

\n", "" ], "text/plain": [ " tweet_id jpg_url \\\n", "0 666020888022790149 https://pbs.twimg.com/media/CT4udn0WwAA0aMy.jpg \n", "1 666029285002620928 https://pbs.twimg.com/media/CT42GRgUYAA5iDo.jpg \n", "2 666033412701032449 https://pbs.twimg.com/media/CT4521TWwAEvMyu.jpg \n", "3 666044226329800704 https://pbs.twimg.com/media/CT5Dr8HUEAA-lEu.jpg \n", "4 666049248165822465 https://pbs.twimg.com/media/CT5IQmsXIAAKY4A.jpg \n", "... ... ... \n", "2070 891327558926688256 https://pbs.twimg.com/media/DF6hr6BUMAAzZgT.jpg \n", "2071 891689557279858688 https://pbs.twimg.com/media/DF_q7IAWsAEuuN8.jpg \n", "2072 891815181378084864 https://pbs.twimg.com/media/DGBdLU1WsAANxJ9.jpg \n", "2073 892177421306343426 https://pbs.twimg.com/media/DGGmoV4XsAAUL6n.jpg \n", "2074 892420643555336193 https://pbs.twimg.com/media/DGKD1-bXoAAIAUK.jpg \n", "\n", " img_num p1 p1_conf p1_dog p2 \\\n", "0 1 Welsh_springer_spaniel 0.465074 True collie \n", "1 1 redbone 0.506826 True miniature_pinscher \n", "2 1 German_shepherd 0.596461 True malinois \n", "3 1 Rhodesian_ridgeback 0.408143 True redbone \n", "4 1 miniature_pinscher 0.560311 True Rottweiler \n", "... ... ... ... ... ... \n", "2070 2 basset 0.555712 True English_springer \n", "2071 1 paper_towel 0.170278 False Labrador_retriever \n", "2072 1 Chihuahua 0.716012 True malamute \n", "2073 1 Chihuahua 0.323581 True Pekinese \n", "2074 1 orange 0.097049 False bagel \n", "\n", " p2_conf p2_dog p3 p3_conf p3_dog \n", "0 0.156665 True Shetland_sheepdog 0.061428 True \n", "1 0.074192 True Rhodesian_ridgeback 0.072010 True \n", "2 0.138584 True bloodhound 0.116197 True \n", "3 0.360687 True miniature_pinscher 0.222752 True \n", "4 0.243682 True Doberman 0.154629 True \n", "... ... ... ... ... ... \n", "2070 0.225770 True German_short-haired_pointer 0.175219 True \n", "2071 0.168086 True spatula 0.040836 False \n", "2072 0.078253 True kelpie 0.031379 True \n", "2073 0.090647 True papillon 0.068957 True \n", "2074 0.085851 False banana 0.076110 False \n", "\n", "[2075 rows x 12 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#viewing the image-predictions dataframe\n", "df2" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idretweet_countfavourite_count
0892420643555336193885339467
1892177421306343426651433819
2891815181378084864432825461
3891689557279858688896442908
4891327558926688256977441048
............
234966604924816582246541111
2350666044226329800704147311
235166603341270103244947128
235266602928500262092848132
23536660208880227901495322535
\n", "

2354 rows × 3 columns

\n", "
" ], "text/plain": [ " tweet_id retweet_count favourite_count\n", "0 892420643555336193 8853 39467\n", "1 892177421306343426 6514 33819\n", "2 891815181378084864 4328 25461\n", "3 891689557279858688 8964 42908\n", "4 891327558926688256 9774 41048\n", "... ... ... ...\n", "2349 666049248165822465 41 111\n", "2350 666044226329800704 147 311\n", "2351 666033412701032449 47 128\n", "2352 666029285002620928 48 132\n", "2353 666020888022790149 532 2535\n", "\n", "[2354 rows x 3 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking the tweet-json file\n", "df3" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2356 entries, 0 to 2355\n", "Data columns (total 17 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2356 non-null int64 \n", " 1 in_reply_to_status_id 78 non-null float64\n", " 2 in_reply_to_user_id 78 non-null float64\n", " 3 timestamp 2356 non-null object \n", " 4 source 2356 non-null object \n", " 5 text 2356 non-null object \n", " 6 retweeted_status_id 181 non-null float64\n", " 7 retweeted_status_user_id 181 non-null float64\n", " 8 retweeted_status_timestamp 181 non-null object \n", " 9 expanded_urls 2297 non-null object \n", " 10 rating_numerator 2356 non-null int64 \n", " 11 rating_denominator 2356 non-null int64 \n", " 12 name 2356 non-null object \n", " 13 doggo 2356 non-null object \n", " 14 floofer 2356 non-null object \n", " 15 pupper 2356 non-null object \n", " 16 puppo 2356 non-null object \n", "dtypes: float64(4), int64(3), object(10)\n", "memory usage: 313.0+ KB\n" ] } ], "source": [ "#checking the information of df1\n", "df1.info()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2075 entries, 0 to 2074\n", "Data columns (total 12 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2075 non-null int64 \n", " 1 jpg_url 2075 non-null object \n", " 2 img_num 2075 non-null int64 \n", " 3 p1 2075 non-null object \n", " 4 p1_conf 2075 non-null float64\n", " 5 p1_dog 2075 non-null bool \n", " 6 p2 2075 non-null object \n", " 7 p2_conf 2075 non-null float64\n", " 8 p2_dog 2075 non-null bool \n", " 9 p3 2075 non-null object \n", " 10 p3_conf 2075 non-null float64\n", " 11 p3_dog 2075 non-null bool \n", "dtypes: bool(3), float64(3), int64(2), object(4)\n", "memory usage: 152.1+ KB\n" ] } ], "source": [ "#checking the information of df2\n", "df2.info()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2354 entries, 0 to 2353\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype\n", "--- ------ -------------- -----\n", " 0 tweet_id 2354 non-null int64\n", " 1 retweet_count 2354 non-null int64\n", " 2 favourite_count 2354 non-null int64\n", "dtypes: int64(3)\n", "memory usage: 55.3 KB\n" ] } ], "source": [ "#checking the information of df3\n", "df3.info()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idimg_nump1_confp2_confp3_conf
count2.075000e+032075.0000002075.0000002.075000e+032.075000e+03
mean7.384514e+171.2038550.5945481.345886e-016.032417e-02
std6.785203e+160.5618750.2711741.006657e-015.090593e-02
min6.660209e+171.0000000.0443331.011300e-081.740170e-10
25%6.764835e+171.0000000.3644125.388625e-021.622240e-02
50%7.119988e+171.0000000.5882301.181810e-014.944380e-02
75%7.932034e+171.0000000.8438551.955655e-019.180755e-02
max8.924206e+174.0000001.0000004.880140e-012.734190e-01
\n", "
" ], "text/plain": [ " tweet_id img_num p1_conf p2_conf p3_conf\n", "count 2.075000e+03 2075.000000 2075.000000 2.075000e+03 2.075000e+03\n", "mean 7.384514e+17 1.203855 0.594548 1.345886e-01 6.032417e-02\n", "std 6.785203e+16 0.561875 0.271174 1.006657e-01 5.090593e-02\n", "min 6.660209e+17 1.000000 0.044333 1.011300e-08 1.740170e-10\n", "25% 6.764835e+17 1.000000 0.364412 5.388625e-02 1.622240e-02\n", "50% 7.119988e+17 1.000000 0.588230 1.181810e-01 4.944380e-02\n", "75% 7.932034e+17 1.000000 0.843855 1.955655e-01 9.180755e-02\n", "max 8.924206e+17 4.000000 1.000000 4.880140e-01 2.734190e-01" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking the descriptive statistics of df2\n", "df2.describe()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "17 tweet_id\n", "29 tweet_id\n", "dtype: object" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking for duplicated columns across the 3 dataframes\n", "columns=pd.Series(list(df1)+ list(df2)+ list(df3))\n", "columns[columns.duplicated()]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idin_reply_to_status_idin_reply_to_user_idtimestampsourcetextretweeted_status_idretweeted_status_user_idretweeted_status_timestampexpanded_urlsrating_numeratorrating_denominatornamedoggoflooferpupperpuppo
19888202515573088257NaNNaN2017-07-21 01:02:36 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @dog_rates: This is Canela. She attempted s...8.874740e+174.196984e+092017-07-19 00:47:34 +0000https://twitter.com/dog_rates/status/887473957...1310CanelaNoneNoneNoneNone
32886054160059072513NaNNaN2017-07-15 02:45:48 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @Athletics: 12/10 #BATP https://t.co/WxwJmv...8.860537e+171.960740e+072017-07-15 02:44:07 +0000https://twitter.com/dog_rates/status/886053434...1210NoneNoneNoneNoneNone
36885311592912609280NaNNaN2017-07-13 01:35:06 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @dog_rates: This is Lilly. She just paralle...8.305833e+174.196984e+092017-02-12 01:04:29 +0000https://twitter.com/dog_rates/status/830583320...1310LillyNoneNoneNoneNone
68879130579576475649NaNNaN2017-06-26 00:13:58 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @dog_rates: This is Emmy. She was adopted t...8.780576e+174.196984e+092017-06-23 01:10:23 +0000https://twitter.com/dog_rates/status/878057613...1410EmmyNoneNoneNoneNone
73878404777348136964NaNNaN2017-06-24 00:09:53 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @dog_rates: Meet Shadow. In an attempt to r...8.782815e+174.196984e+092017-06-23 16:00:04 +0000https://www.gofundme.com/3yd6y1c,https://twitt...1310ShadowNoneNoneNoneNone
......................................................
1023746521445350707200NaNNaN2016-06-25 01:52:36 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @dog_rates: This is Shaggy. He knows exactl...6.678667e+174.196984e+092015-11-21 00:46:50 +0000https://twitter.com/dog_rates/status/667866724...1010ShaggyNoneNoneNoneNone
1043743835915802583040NaNNaN2016-06-17 16:01:16 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @dog_rates: Extremely intelligent dog here....6.671383e+174.196984e+092015-11-19 00:32:12 +0000https://twitter.com/dog_rates/status/667138269...1010NoneNoneNoneNoneNone
1242711998809858043904NaNNaN2016-03-21 19:31:59 +0000<a href=\"http://twitter.com/download/iphone\" r...RT @twitter: @dog_rates Awesome Tweet! 12/10. ...7.119983e+177.832140e+052016-03-21 19:29:52 +0000https://twitter.com/twitter/status/71199827977...1210NoneNoneNoneNoneNone
2259667550904950915073NaNNaN2015-11-20 03:51:52 +0000<a href=\"http://twitter.com\" rel=\"nofollow\">Tw...RT @dogratingrating: Exceptional talent. Origi...6.675487e+174.296832e+092015-11-20 03:43:06 +0000https://twitter.com/dogratingrating/status/667...1210NoneNoneNoneNoneNone
2260667550882905632768NaNNaN2015-11-20 03:51:47 +0000<a href=\"http://twitter.com\" rel=\"nofollow\">Tw...RT @dogratingrating: Unoriginal idea. Blatant ...6.675484e+174.296832e+092015-11-20 03:41:59 +0000https://twitter.com/dogratingrating/status/667...510NoneNoneNoneNoneNone
\n", "

181 rows × 17 columns

\n", "
" ], "text/plain": [ " tweet_id in_reply_to_status_id in_reply_to_user_id \\\n", "19 888202515573088257 NaN NaN \n", "32 886054160059072513 NaN NaN \n", "36 885311592912609280 NaN NaN \n", "68 879130579576475649 NaN NaN \n", "73 878404777348136964 NaN NaN \n", "... ... ... ... \n", "1023 746521445350707200 NaN NaN \n", "1043 743835915802583040 NaN NaN \n", "1242 711998809858043904 NaN NaN \n", "2259 667550904950915073 NaN NaN \n", "2260 667550882905632768 NaN NaN \n", "\n", " timestamp \\\n", "19 2017-07-21 01:02:36 +0000 \n", "32 2017-07-15 02:45:48 +0000 \n", "36 2017-07-13 01:35:06 +0000 \n", "68 2017-06-26 00:13:58 +0000 \n", "73 2017-06-24 00:09:53 +0000 \n", "... ... \n", "1023 2016-06-25 01:52:36 +0000 \n", "1043 2016-06-17 16:01:16 +0000 \n", "1242 2016-03-21 19:31:59 +0000 \n", "2259 2015-11-20 03:51:52 +0000 \n", "2260 2015-11-20 03:51:47 +0000 \n", "\n", " source \\\n", "19
Tw... \n", "2260 Tw... \n", "\n", " text retweeted_status_id \\\n", "19 RT @dog_rates: This is Canela. She attempted s... 8.874740e+17 \n", "32 RT @Athletics: 12/10 #BATP https://t.co/WxwJmv... 8.860537e+17 \n", "36 RT @dog_rates: This is Lilly. She just paralle... 8.305833e+17 \n", "68 RT @dog_rates: This is Emmy. She was adopted t... 8.780576e+17 \n", "73 RT @dog_rates: Meet Shadow. In an attempt to r... 8.782815e+17 \n", "... ... ... \n", "1023 RT @dog_rates: This is Shaggy. He knows exactl... 6.678667e+17 \n", "1043 RT @dog_rates: Extremely intelligent dog here.... 6.671383e+17 \n", "1242 RT @twitter: @dog_rates Awesome Tweet! 12/10. ... 7.119983e+17 \n", "2259 RT @dogratingrating: Exceptional talent. Origi... 6.675487e+17 \n", "2260 RT @dogratingrating: Unoriginal idea. Blatant ... 6.675484e+17 \n", "\n", " retweeted_status_user_id retweeted_status_timestamp \\\n", "19 4.196984e+09 2017-07-19 00:47:34 +0000 \n", "32 1.960740e+07 2017-07-15 02:44:07 +0000 \n", "36 4.196984e+09 2017-02-12 01:04:29 +0000 \n", "68 4.196984e+09 2017-06-23 01:10:23 +0000 \n", "73 4.196984e+09 2017-06-23 16:00:04 +0000 \n", "... ... ... \n", "1023 4.196984e+09 2015-11-21 00:46:50 +0000 \n", "1043 4.196984e+09 2015-11-19 00:32:12 +0000 \n", "1242 7.832140e+05 2016-03-21 19:29:52 +0000 \n", "2259 4.296832e+09 2015-11-20 03:43:06 +0000 \n", "2260 4.296832e+09 2015-11-20 03:41:59 +0000 \n", "\n", " expanded_urls rating_numerator \\\n", "19 https://twitter.com/dog_rates/status/887473957... 13 \n", "32 https://twitter.com/dog_rates/status/886053434... 12 \n", "36 https://twitter.com/dog_rates/status/830583320... 13 \n", "68 https://twitter.com/dog_rates/status/878057613... 14 \n", "73 https://www.gofundme.com/3yd6y1c,https://twitt... 13 \n", "... ... ... \n", "1023 https://twitter.com/dog_rates/status/667866724... 10 \n", "1043 https://twitter.com/dog_rates/status/667138269... 10 \n", "1242 https://twitter.com/twitter/status/71199827977... 12 \n", "2259 https://twitter.com/dogratingrating/status/667... 12 \n", "2260 https://twitter.com/dogratingrating/status/667... 5 \n", "\n", " rating_denominator name doggo floofer pupper puppo \n", "19 10 Canela None None None None \n", "32 10 None None None None None \n", "36 10 Lilly None None None None \n", "68 10 Emmy None None None None \n", "73 10 Shadow None None None None \n", "... ... ... ... ... ... ... \n", "1023 10 Shaggy None None None None \n", "1043 10 None None None None None \n", "1242 10 None None None None None \n", "2259 10 None None None None None \n", "2260 10 None None None None None \n", "\n", "[181 rows x 17 columns]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking for which values in the df1 that are retweets\n", "df1[df1.retweeted_status_id.notnull()]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking for duplicated values in df1\n", "sum(df1.duplicated())" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking for duplicated values in df2\n", "sum(df2.duplicated())" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking for duplicated values in df1\n", "sum(df3.duplicated())" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tweet_id 0\n", "in_reply_to_status_id 2278\n", "in_reply_to_user_id 2278\n", "timestamp 0\n", "source 0\n", "text 0\n", "retweeted_status_id 2175\n", "retweeted_status_user_id 2175\n", "retweeted_status_timestamp 2175\n", "expanded_urls 59\n", "rating_numerator 0\n", "rating_denominator 0\n", "name 0\n", "doggo 0\n", "floofer 0\n", "pupper 0\n", "puppo 0\n", "dtype: int64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking the number of missing values in each column of df1\n", "df1.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tweet_id 0\n", "jpg_url 0\n", "img_num 0\n", "p1 0\n", "p1_conf 0\n", "p1_dog 0\n", "p2 0\n", "p2_conf 0\n", "p2_dog 0\n", "p3 0\n", "p3_conf 0\n", "p3_dog 0\n", "dtype: int64" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking the number of missing values in each column of df2\n", "df2.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tweet_id 0\n", "retweet_count 0\n", "favourite_count 0\n", "dtype: int64" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#checking the number of missing values in each column of df3\n", "df3.isnull().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Quality issues\n", "#### df1 (twiiter-archive)\n", "- Erroneous datatypes in some columns.\n", "- Some values in the name column are in lowercase and appear to not be dog names.\n", "- Some tweet-id's have values in the *retweeted_status_id, retweeted_status_user_id and retweeted_status_timestamp* column.\n", "- Missing data in the *in_reply_to_status, in_reply_to_user_id, retweeted_status_id, retweeted_status_user_id, retweeted_status_timestamp, expanded_url*.\n", "\n", "#### df2 (image-prediction)\n", "- Erroneous datatype in tweet_id column.\n", "- Outliers in *p2_conf and p3_conf* column.\n", "- Non-descriptive column names i.e *p1, p2, p3, p1_conf* e.t.c.\n", "- Inconsistent alphabet case in *p1, p2, p3*.\n", "\n", "#### df3 (tweet-json)\n", "- Erroneous datatype in *tweet_id* column.\n" ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 0, "height": 7, "hidden": false, "row": 40, "width": 12 }, "report_default": { "hidden": false } } } } }, "source": [ "### Tidiness issues\n", "- Dog stages (doggo, popper, puppo, and floofer) should be in one column.\n", "- *tweet_id* in twitter-archive dataframe is duplicated in the other two dataframe.\n", "- Merging the three dataframe as one." ] }, { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "col": 4, "height": 4, "hidden": false, "row": 32, "width": 4 }, "report_default": { "hidden": false } } } } }, "source": [ "## Cleaning Data\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "# Make copies of original pieces of data\n", "df1_clean=df1.copy()\n", "df2_clean=df2.copy()\n", "df3_clean=df3.copy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quality\n", "### df1\n", "### Issue #1: Erroneous datatypes in the *tweet_id, timestamp, retweeted_status_timestamp*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Tweet_id would be changed from *int* to *string* datatype, while the other two would be changed to *datetime*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "df1_clean['tweet_id']=df1_clean['tweet_id'].astype(str)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "date=['timestamp', 'retweeted_status_timestamp']\n", "for value in date:\n", " df1_clean[value]=df1_clean[value].apply(pd.to_datetime)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2356 entries, 0 to 2355\n", "Data columns (total 17 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2356 non-null object \n", " 1 in_reply_to_status_id 78 non-null float64 \n", " 2 in_reply_to_user_id 78 non-null float64 \n", " 3 timestamp 2356 non-null datetime64[ns, UTC]\n", " 4 source 2356 non-null object \n", " 5 text 2356 non-null object \n", " 6 retweeted_status_id 181 non-null float64 \n", " 7 retweeted_status_user_id 181 non-null float64 \n", " 8 retweeted_status_timestamp 181 non-null datetime64[ns, UTC]\n", " 9 expanded_urls 2297 non-null object \n", " 10 rating_numerator 2356 non-null int64 \n", " 11 rating_denominator 2356 non-null int64 \n", " 12 name 2356 non-null object \n", " 13 doggo 2356 non-null object \n", " 14 floofer 2356 non-null object \n", " 15 pupper 2356 non-null object \n", " 16 puppo 2356 non-null object \n", "dtypes: datetime64[ns, UTC](2), float64(4), int64(2), object(9)\n", "memory usage: 313.0+ KB\n" ] } ], "source": [ "df1_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #2: Some values in the name column are in lowercase and appear to not be dog names" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": { "hidden": true }, "report_default": { "hidden": true } } } } }, "source": [ "#### Define: Replace the values that have lower case." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['such', 'a', 'quite', 'not', 'one', 'incredibly', 'mad', 'an', 'very', 'just', 'my', 'his', 'actually', 'getting', 'this', 'unacceptable', 'all', 'old', 'infuriating', 'the', 'by', 'officially', 'life', 'light', 'space']\n" ] } ], "source": [ "#we define a function that shows us the values in lowercase\n", "list=[]\n", "\n", "for lower in df1_clean.name:\n", " if lower.islower() and lower not in list:\n", " list.append(lower)\n", " \n", "print(list)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "#replace the values in [list] with 'None' since there are also other values that have None\n", "df1_clean['name'].replace(list, 'None', inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "595 None\n", "552 Rusty\n", "492 Atlas\n", "74 Terrance\n", "1826 None\n", "879 Theo\n", "37 None\n", "1002 None\n", "361 Leo\n", "1710 Penny\n", "572 None\n", "1949 None\n", "87 Nugget\n", "621 None\n", "1267 Olaf\n", "1714 None\n", "254 Charlie\n", "741 Bell\n", "1862 None\n", "172 None\n", "Name: name, dtype: object" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1_clean.name.sample(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #3: Some tweet-id's have values in the retweeted_status_id, retweeted_status_user_id and retweeted_status_timestamp column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: We remove these columns since what we need is original tweets and not retweets" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "181\n", "181\n", "181\n" ] } ], "source": [ "#lets check the sum of the values in these columns\n", "print(df1_clean.retweeted_status_id.notnull().sum())\n", "print(df1_clean.retweeted_status_user_id.notnull().sum())\n", "print(df1_clean.retweeted_status_timestamp.notnull().sum())" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "#dropping the column\n", "df1_clean=df1_clean[df1_clean.retweeted_status_id.isnull()]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "0\n", "0\n" ] } ], "source": [ "#cross check to be sure the columns have dropped\n", "print(df1_clean.retweeted_status_id.notnull().sum())\n", "print(df1_clean.retweeted_status_user_id.notnull().sum())\n", "print(df1_clean.retweeted_status_timestamp.notnull().sum())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #4: Missing data in the *in_reply_to_status, in_reply_to_user_id, retweeted_status_id, retweeted_status_user_id, retweeted_status_timestamp, expanded_url*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Dropping off these columns as the amount of data missing is enormous and the columns won't be used for further analysis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "#group all columns into a list and drop them\n", "column=['in_reply_to_status_id', 'in_reply_to_user_id', 'retweeted_status_id', 'retweeted_status_user_id',\n", " 'retweeted_status_timestamp', 'expanded_urls']\n", "\n", "df1_clean.drop(column, axis=1, inplace=True)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tweet_id 0\n", "timestamp 0\n", "source 0\n", "text 0\n", "rating_numerator 0\n", "rating_denominator 0\n", "name 0\n", "doggo 0\n", "floofer 0\n", "pupper 0\n", "puppo 0\n", "dtype: int64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1_clean.isnull().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### df2\n", "### Issue #5: Erroneous datatype in tweet_id column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Chane the datatype from int to string" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "#changing the datatype to string using .astype()\n", "df2_clean['tweet_id']=df2_clean.tweet_id.astype(str)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2075 entries, 0 to 2074\n", "Data columns (total 12 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2075 non-null object \n", " 1 jpg_url 2075 non-null object \n", " 2 img_num 2075 non-null int64 \n", " 3 p1 2075 non-null object \n", " 4 p1_conf 2075 non-null float64\n", " 5 p1_dog 2075 non-null bool \n", " 6 p2 2075 non-null object \n", " 7 p2_conf 2075 non-null float64\n", " 8 p2_dog 2075 non-null bool \n", " 9 p3 2075 non-null object \n", " 10 p3_conf 2075 non-null float64\n", " 11 p3_dog 2075 non-null bool \n", "dtypes: bool(3), float64(3), int64(1), object(5)\n", "memory usage: 152.1+ KB\n" ] } ], "source": [ "df2_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #6: Outliers in *p2_conf and p3_conf* column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Dropping the columns as they would not be used in further analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "list=['p2_conf', 'p3_conf']\n", "\n", "df2_clean.drop(list, axis=1, inplace=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2075 entries, 0 to 2074\n", "Data columns (total 10 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2075 non-null object \n", " 1 jpg_url 2075 non-null object \n", " 2 img_num 2075 non-null int64 \n", " 3 p1 2075 non-null object \n", " 4 p1_conf 2075 non-null float64\n", " 5 p1_dog 2075 non-null bool \n", " 6 p2 2075 non-null object \n", " 7 p2_dog 2075 non-null bool \n", " 8 p3 2075 non-null object \n", " 9 p3_dog 2075 non-null bool \n", "dtypes: bool(3), float64(1), int64(1), object(5)\n", "memory usage: 119.7+ KB\n" ] } ], "source": [ "df2_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #7: Non-descriptive column names i.e p1, p2, p3, p1_conf e.t.c." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Rename the columns with the following descriptive names- prediction1, pred1_confidence, pred1_asdog, prediction2, pred2_asdog, prediction3, pred3_asdog" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "df2_clean=df2_clean.rename(columns={'p1': 'prediction1', 'p1_conf': 'p1_confidence', 'p1_dog': 'p1_asdog', 'p2':'prediction2', \n", " 'p2_dog':'p2_asdog', 'p3':'prediction3', 'p3_dog':'p3_asdog'})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idjpg_urlimg_numprediction1p1_confidencep1_asdogprediction2p2_asdogprediction3p3_asdog
0666020888022790149https://pbs.twimg.com/media/CT4udn0WwAA0aMy.jpg1Welsh_springer_spaniel0.465074TruecollieTrueShetland_sheepdogTrue
\n", "
" ], "text/plain": [ " tweet_id jpg_url \\\n", "0 666020888022790149 https://pbs.twimg.com/media/CT4udn0WwAA0aMy.jpg \n", "\n", " img_num prediction1 p1_confidence p1_asdog prediction2 \\\n", "0 1 Welsh_springer_spaniel 0.465074 True collie \n", "\n", " p2_asdog prediction3 p3_asdog \n", "0 True Shetland_sheepdog True " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2_clean.head(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #8: Inconsistent alphabet case in *p1, p2, p3*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: we change the values in the 3 columns to lowercase" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "df2_clean['prediction1']=df2_clean.prediction1.str.lower()\n", "df2_clean['prediction2']=df2_clean.prediction2.str.lower()\n", "df2_clean['prediction3']=df2_clean.prediction3.str.lower()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "171 hog\n", "1747 cowboy_boot\n", "988 miniature_pinscher\n", "143 crash_helmet\n", "984 ram\n", "1529 malamute\n", "493 bath_towel\n", "331 tennis_ball\n", "421 robin\n", "23 golden_retriever\n", "1093 home_theater\n", "1297 upright\n", "2049 samoyed\n", "786 pug\n", "1434 old_english_sheepdog\n", "619 space_heater\n", "508 walking_stick\n", "127 pembroke\n", "253 wood_rabbit\n", "899 border_terrier\n", "Name: prediction1, dtype: object" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2_clean.prediction1.sample(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### df3\n", "### Issue #9: Erroneous datatype in tweet_id column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Change the datatype from int to string using the astype() method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "df3_clean['tweet_id']=df3_clean.tweet_id.astype(str)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 2354 entries, 0 to 2353\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2354 non-null object\n", " 1 retweet_count 2354 non-null int64 \n", " 2 favourite_count 2354 non-null int64 \n", "dtypes: int64(2), object(1)\n", "memory usage: 55.3+ KB\n" ] } ], "source": [ "df3_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tidiness\n", "### Issue #1: Dog stages (doggo, popper, puppo, and floofer) should be in one column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Using pd.melt, we convert the four columns of dog stages into one column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "#using the pd.melt method\n", "df1_clean=pd.melt(df1_clean, id_vars=['tweet_id', 'timestamp', 'source', 'text', 'rating_numerator', 'rating_denominator', 'name'],\n", " var_name='types', value_name='dog_stages')" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "#removing the var_name column as this just repeats the types of dog_stages and also to get rid of duplicates\n", "df1_clean.drop(columns='types', inplace=True)\n", "df1_clean.drop_duplicates(inplace=True)\n", "\n", "#replacing the 'None' values with NaN\n", "df1_clean['dog_stages']=df1_clean.dog_stages.replace('None', np.nan)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pupper 234\n", "doggo 87\n", "puppo 25\n", "floofer 10\n", "Name: dog_stages, dtype: int64" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1_clean['dog_stages'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #2: *tweet_id* in twitter-archive (df1) dataframe is duplicated in the other two dataframe." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Merge the favorite count and retweet count to the twitter-archive table, joining on tweet_id." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "df1_clean=pd.merge(df1_clean, df3_clean, on='tweet_id', how='left')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 2531 entries, 0 to 2530\n", "Data columns (total 10 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2531 non-null object \n", " 1 timestamp 2531 non-null datetime64[ns, UTC]\n", " 2 source 2531 non-null object \n", " 3 text 2531 non-null object \n", " 4 rating_numerator 2531 non-null int64 \n", " 5 rating_denominator 2531 non-null int64 \n", " 6 name 2531 non-null object \n", " 7 dog_stages 356 non-null object \n", " 8 retweet_count 2531 non-null int64 \n", " 9 favourite_count 2531 non-null int64 \n", "dtypes: datetime64[ns, UTC](1), int64(4), object(5)\n", "memory usage: 217.5+ KB\n" ] } ], "source": [ "df1_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Issue #3: Merging the dataframes into one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define: Before merging the image prediction table, we would be dropping some columns as they would not be used for further analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Code" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "#dropping the prediction2, p2_asdog, prediction3, p3_asdog columns\n", "list = ['prediction2', 'p2_asdog', 'prediction3', 'p3_asdog']\n", "df2_clean.drop(list, axis=1, inplace=True)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "#then we merge the image-prediction dataframe with the twitter-archive on tweet_id\n", "df1_clean=pd.merge(df1_clean, df2_clean, on='tweet_id', how='left')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Test" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 2531 entries, 0 to 2530\n", "Data columns (total 15 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2531 non-null object \n", " 1 timestamp 2531 non-null datetime64[ns, UTC]\n", " 2 source 2531 non-null object \n", " 3 text 2531 non-null object \n", " 4 rating_numerator 2531 non-null int64 \n", " 5 rating_denominator 2531 non-null int64 \n", " 6 name 2531 non-null object \n", " 7 dog_stages 356 non-null object \n", " 8 retweet_count 2531 non-null int64 \n", " 9 favourite_count 2531 non-null int64 \n", " 10 jpg_url 2311 non-null object \n", " 11 img_num 2311 non-null float64 \n", " 12 prediction1 2311 non-null object \n", " 13 p1_confidence 2311 non-null float64 \n", " 14 p1_asdog 2311 non-null object \n", "dtypes: datetime64[ns, UTC](1), float64(2), int64(4), object(8)\n", "memory usage: 316.4+ KB\n" ] } ], "source": [ "df1_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- The datatype of the *img_num* column so we would need to change it back to integer. First we convert all the NaN values to 0 to avoid errors." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "df1_clean['img_num']=df1_clean.img_num.fillna(0)\n", "df1_clean['img_num']=df1_clean.img_num.astype(int)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 2531 entries, 0 to 2530\n", "Data columns (total 15 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 tweet_id 2531 non-null object \n", " 1 timestamp 2531 non-null datetime64[ns, UTC]\n", " 2 source 2531 non-null object \n", " 3 text 2531 non-null object \n", " 4 rating_numerator 2531 non-null int64 \n", " 5 rating_denominator 2531 non-null int64 \n", " 6 name 2531 non-null object \n", " 7 dog_stages 356 non-null object \n", " 8 retweet_count 2531 non-null int64 \n", " 9 favourite_count 2531 non-null int64 \n", " 10 jpg_url 2311 non-null object \n", " 11 img_num 2531 non-null int32 \n", " 12 prediction1 2311 non-null object \n", " 13 p1_confidence 2311 non-null float64 \n", " 14 p1_asdog 2311 non-null object \n", "dtypes: datetime64[ns, UTC](1), float64(1), int32(1), int64(4), object(8)\n", "memory usage: 306.5+ KB\n" ] } ], "source": [ "#checking to see that the datatype has changed\n", "df1_clean.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Storing Data\n", "Save gathered, assessed, and cleaned master dataset to a CSV file named \"twitter_archive_master.csv\"." ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "df1_clean.to_csv('twitter_archive_master.csv', index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyzing and Visualizing Data\n", "In this section, analyze and visualize your wrangled data. You must produce at least **three (3) insights and one (1) visualization.**" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idtimestampsourcetextrating_numeratorrating_denominatornamedog_stagesretweet_countfavourite_countjpg_urlimg_numprediction1p1_confidencep1_asdog
08924206435553361932017-08-01 16:23:56+00:00<a href=\"http://twitter.com/download/iphone\" r...This is Phineas. He's a mystical boy. Only eve...1310PhineasNaN885339467https://pbs.twimg.com/media/DGKD1-bXoAAIAUK.jpg1orange0.097049False
18921774213063434262017-08-01 00:17:27+00:00<a href=\"http://twitter.com/download/iphone\" r...This is Tilly. She's just checking pup on you....1310TillyNaN651433819https://pbs.twimg.com/media/DGGmoV4XsAAUL6n.jpg1chihuahua0.323581True
28918151813780848642017-07-31 00:18:03+00:00<a href=\"http://twitter.com/download/iphone\" r...This is Archie. He is a rare Norwegian Pouncin...1210ArchieNaN432825461https://pbs.twimg.com/media/DGBdLU1WsAANxJ9.jpg1chihuahua0.716012True
38916895572798586882017-07-30 15:58:51+00:00<a href=\"http://twitter.com/download/iphone\" r...This is Darla. She commenced a snooze mid meal...1310DarlaNaN896442908https://pbs.twimg.com/media/DF_q7IAWsAEuuN8.jpg1paper_towel0.170278False
\n", "
" ], "text/plain": [ " tweet_id timestamp \\\n", "0 892420643555336193 2017-08-01 16:23:56+00:00 \n", "1 892177421306343426 2017-08-01 00:17:27+00:00 \n", "2 891815181378084864 2017-07-31 00:18:03+00:00 \n", "3 891689557279858688 2017-07-30 15:58:51+00:00 \n", "\n", " source \\\n", "0
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
tweet_idrating_numeratorrating_denominatorretweet_countfavourite_countimg_nump1_confidence
count2.531000e+032531.0000002531.0000002531.0000002531.0000002531.0000002311.000000
mean7.384206e+1712.92730110.4235482899.7929679048.9320431.1054920.597116
std6.693796e+1644.2522086.5087955085.33174312668.5141760.6444760.271582
min6.660209e+170.0000000.0000000.00000052.0000000.0000000.044333
25%6.783890e+1710.00000010.000000642.0000002093.5000001.0000000.367945
50%7.124382e+1711.00000010.0000001408.0000004228.0000001.0000000.596796
75%7.904598e+1712.00000010.0000003263.00000011309.5000001.0000000.846807
max8.924206e+171776.000000170.00000079515.000000132810.0000004.0000001.000000
\n", "" ], "text/plain": [ " tweet_id rating_numerator rating_denominator retweet_count \\\n", "count 2.531000e+03 2531.000000 2531.000000 2531.000000 \n", "mean 7.384206e+17 12.927301 10.423548 2899.792967 \n", "std 6.693796e+16 44.252208 6.508795 5085.331743 \n", "min 6.660209e+17 0.000000 0.000000 0.000000 \n", "25% 6.783890e+17 10.000000 10.000000 642.000000 \n", "50% 7.124382e+17 11.000000 10.000000 1408.000000 \n", "75% 7.904598e+17 12.000000 10.000000 3263.000000 \n", "max 8.924206e+17 1776.000000 170.000000 79515.000000 \n", "\n", " favourite_count img_num p1_confidence \n", "count 2531.000000 2531.000000 2311.000000 \n", "mean 9048.932043 1.105492 0.597116 \n", "std 12668.514176 0.644476 0.271582 \n", "min 52.000000 0.000000 0.044333 \n", "25% 2093.500000 1.000000 0.367945 \n", "50% 4228.000000 1.000000 0.596796 \n", "75% 11309.500000 1.000000 0.846807 \n", "max 132810.000000 4.000000 1.000000 " ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#shows the descriptive statistics of our dataset\n", "df_new.describe()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1 1973\n", "2 226\n", "0 220\n", "3 75\n", "4 37\n", "Name: img_num, dtype: int64" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new['img_num'].value_counts()" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
img_num1234
p1_asdog
False52642217
True14471845430
\n", "
" ], "text/plain": [ "img_num 1 2 3 4\n", "p1_asdog \n", "False 526 42 21 7\n", "True 1447 184 54 30" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new.groupby('p1_asdog')['img_num'].value_counts().unstack()" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pupper 234\n", "doggo 87\n", "puppo 25\n", "floofer 10\n", "Name: dog_stages, dtype: int64" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new['dog_stages'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Insights:\n", "1. Tweets that have one image were mostly predicted and we have more of them as dogs.\n", "\n", "2. The mean of the first prediction confidence is approximately 60%.\n", "\n", "3. We have more favorite_count than retweet_count.\n", "\n", "4. We have more dogs as pupper (smaller and younger dogs) than the rest of the other dog stages." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Visualization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q1. What dog stage has the highest count?" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#we would show the distribution of the dogstages on a barchart\n", "stages=df_new['dog_stages'].value_counts()\n", "stages.plot(kind='bar', figsize = (5,6))\n", "plt.xticks(rotation=0)\n", "plt.title(\"Dog Stages\")\n", "plt.xlabel(\"Stages\")\n", "plt.ylabel(\"Count\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Most dogs were classified as a pupper, which is a smaller and usually younger type of dogs. But the data for the dog stages is incomplete so we cannot acertain the accuracy of this." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q2. What image number occured most and how accurate was it prediction as a dog?" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#plotting the image numbers with the prediction as dog \n", "pred=df_new.groupby('p1_asdog')['img_num'].value_counts().unstack()\n", "pred.index=['False', 'True']\n", "pred.plot(kind='bar', figsize= (5,6))\n", "plt.legend(['1', '2', '3', '4'])\n", "plt.xticks(rotation=0)\n", "plt.title(\"Image Number Count with Prediction as Dog\")\n", "plt.xlabel(\"Prediction as Dog\")\n", "plt.ylabel(\"Image Number Count\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Tweet with one image were mostly predicted through the neural network and more 50% of the prediction were dogs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Q3. What correlation exists between the favourite count and retweet count" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#we want to see the correlation between the favorite and retweet count\n", "df_new.plot(x='favourite_count', y='retweet_count', kind='scatter')\n", "plt.title('Favorite and Retweet Count');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- From the above, we can see a positive correlation between the retweet and favorite count." ] } ], "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "report_default", "version": 1, "views": { "grid_default": { "cellMargin": 10, "defaultCellHeight": 20, "maxColumns": 12, "name": "grid", "type": "grid" }, "report_default": { "name": "report", "type": "report" } } } }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" } }, "nbformat": 4, "nbformat_minor": 2 }