diff --git a/your-project/Project Presentation.pdf b/your-project/Project Presentation.pdf new file mode 100644 index 0000000..aa7562b Binary files /dev/null and b/your-project/Project Presentation.pdf differ diff --git a/your-project/README.md b/your-project/README.md index 0c5c97c..31f1d84 100644 --- a/your-project/README.md +++ b/your-project/README.md @@ -1,9 +1,9 @@ Ironhack Logo -# Title of My Project -*[Your Name]* +# Travel Instagram - How to have more followers +*Cinthya Blois* -*[Your Cohort, Campus & Date]* +*Ironhack Lisbon | Data Analytics | Full-Time | Oct-Dez 2020* ## Content - [Project Description](#project-description) @@ -16,35 +16,70 @@ ## Project Description -Write a short description of your project: 3-5 sentences about what your project is about, why you chose this topic (if relevant), and what you are trying to show. +The main idea of the project is to understand what is necessary to grow in this business of Instagram travel through insights obtained by statistical analysis. ## Hypotheses / Questions -What are the questions you would like to answer with your project? Write your hypotheses here. +* Q1 - Understand the target public (market search) +* Q2 - People who follow travel profile, follow some specific hashtag related to travel? +* Q3 - The amount of followers is related with the amount of posts that a profile have? ($\uparrow$ followers $\uparrow$ posts) +* Q4 - Photo with people has more likes than without people? (relate people with likes) +* Q5 - Hashtags is important to get likes? (relate likes with hashtags) +* Q6 - Wich type of places have more likes? ## Dataset -Where did you get your data? What dataset did you use or did you build your own datset? If so, did you use an API? Did you scrape a web? Provide links to the data if available. +* Survey Collected +* Data observation -[Dataset]() +### Survey + +The survey consisted of trying to understand whether Instagram travel is something that people are interested in. In addition, try to understand through some questions the preferences of people who are interested in the topic. The questions are: + +* Do you follow any travel Instagram? +* Do you follow any travel-related hashtag? +* Do you prefer to see photos with people or just places? +* Is the description of the photo important to you? +* Do you prefer culture, nature, or food posts? +* Do you usually comment when you like the photo? + +### Data Observation + +10 profiles with at least 10k followers were chosen to obtain information about the last 10 photos posted in their feeds. +The information collected was username, the number of followers for each profile, total number of posts for each profile, location, number of likes, number of comments per photo, and categorized the types of places for each photo, separated the photos into 2 categories: with people and without people and finally I checked for the use of hashtag in caption. + +##### Note: The collection was made on 18 Nov 2020. + +[Dataset](https://github.com/ciblois/Travel_Instagram_Analysis/blob/main/instagram_clean.xlsx) +[API Dataset](https://github.com/ciblois/Travel_Instagram_Analysis/blob/main/Survey_TravelPhotosStudy.csv) +[Survey](https://docs.google.com/forms/d/e/1FAIpQLSf-oAPTcEn4HxK6SACGG5kJ6eNS8n1AFFHIUhmN05x3S1DCtg/viewform?usp=sf_link) ## Workflow -Outline the workflow you used in your project. What were the steps you went through? +* Preparation and distribution of a survey + +* Manual data collection in 10 different profiles. + +* Clean and manipulate the collected data correctly to analyze. + +* Visualization of graphs in dashboard (Tableau) to try to understand patterns and formulate hypotheses + +* Statistical studies of the hypotheses raised about the data + +* Conclusions of approaches to achieve the objectives, which in this case is to improve the degree of influencer on Instagram ## Organization -How did you organize yourself? Did you use any tools? +The project was a week long. The time was divided into 2 days of data collection and treatment of that data. 1 day to visualize the data, raise the hypotheses and make the correct tests to answer each question. Finally, another day to review all the work and set up the product presentation. ## Links -Include the links to your repository, slides and trello. Feel free to include any other links associated to your project. +Include the links to your repository, slides and trello. -[Repository](https://github.com/) -[Slides](https://slides.com/) -[Trello](https://trello.com/en) \ No newline at end of file +[Repository](https://github.com/ciblois/Project-Week-6) +[Dashboard](https://public.tableau.com/profile/cinthya.langue.blois#!/vizhome/Instagram_Profile_Statistics/slide1) \ No newline at end of file diff --git a/your-project/Survey_TravelPhotosStudy.csv b/your-project/Survey_TravelPhotosStudy.csv new file mode 100644 index 0000000..51ef212 --- /dev/null +++ b/your-project/Survey_TravelPhotosStudy.csv @@ -0,0 +1,45 @@ +"Carimbo de data/hora","Do you follow any travel Instagram?","Do you follow any travel-related hashtag?","Do you prefer to see photos with people or just places?","Is the description of the photo important to you?","Do you prefer culture, nature, or food posts?","Do you usually comment when you like the photo?","","" +"2020/11/16 3:36:24 PM GMT","Yes","No","Places","No","nature for example beaches, waterfalls etc","1","","" +"2020/11/16 3:36:40 PM GMT","Yes","No","People","No","cultural eg museums, statues etc","1","Opção 1","Opção 1" +"2020/11/16 3:39:10 PM GMT","Yes","No","People","No","nature for example beaches, waterfalls etc","2","","" +"2020/11/16 3:40:55 PM GMT","No","No","","","","","","" +"2020/11/16 3:42:27 PM GMT","No","No","","","","","","" +"2020/11/16 3:55:11 PM GMT","Yes","Yes","Places","Yes","nature for example beaches, waterfalls etc","1","","Opção 1" +"2020/11/16 3:55:27 PM GMT","No","No","","","","","","" +"2020/11/16 4:09:03 PM GMT","Yes","Yes","Places","No","nature for example beaches, waterfalls etc","1","","" +"2020/11/16 4:16:30 PM GMT","Yes","Yes","Places","Yes","cultural eg museums, statues etc","4","","" +"2020/11/16 4:32:19 PM GMT","Yes","No","Places","No","nature for example beaches, waterfalls etc","1","","" +"2020/11/16 5:28:16 PM GMT","No","No","","","","","","" +"2020/11/16 5:40:26 PM GMT","Yes","No","People","Yes","nature for example beaches, waterfalls etc","1","","" +"2020/11/16 5:42:24 PM GMT","Yes","No","Places","No","nature for example beaches, waterfalls etc","2","","" +"2020/11/16 6:00:55 PM GMT","Yes","No","People","No","nature for example beaches, waterfalls etc","1","","" +"2020/11/16 6:02:27 PM GMT","No","No","","","","","","" +"2020/11/16 6:56:48 PM GMT","No","No","","","","","","" +"2020/11/16 8:44:17 PM GMT","No","No","","","","","","" +"2020/11/17 9:31:57 AM GMT","No","No","","","","","","" +"2020/11/17 9:50:52 AM GMT","No","No","","","","","","" +"2020/11/17 9:51:25 AM GMT","No","No","","","","","","" +"2020/11/17 9:51:37 AM GMT","No","No","","","","","","" +"2020/11/17 9:52:45 AM GMT","No","No","","","","","","" +"2020/11/17 9:54:09 AM GMT","Yes","No","Places","Yes","nature for example beaches, waterfalls etc","2","","" +"2020/11/17 9:55:33 AM GMT","No","No","","","","","","" +"2020/11/17 9:56:01 AM GMT","Yes","No","Places","Yes","nature for example beaches, waterfalls etc","2","","" +"2020/11/17 9:56:07 AM GMT","Yes","No","Places","Yes","nature for example beaches, waterfalls etc","1","","" +"2020/11/17 9:56:56 AM GMT","Yes","Yes","Places","Yes","nature for example beaches, waterfalls etc","3","","" +"2020/11/17 9:57:32 AM GMT","Yes","Yes","Places","No","nature for example beaches, waterfalls etc","3","","" +"2020/11/17 9:58:41 AM GMT","No","No","","","","","","" +"2020/11/17 9:59:17 AM GMT","No","No","","","","","","" +"2020/11/17 10:03:44 AM GMT","No","No","","","","","","" +"2020/11/17 11:04:06 AM GMT","Yes","Yes","People","No","nature for example beaches, waterfalls etc","2","","" +"2020/11/17 11:24:36 AM GMT","Yes","Yes","Places","Yes","nature for example beaches, waterfalls etc","3","","" +"2020/11/17 11:34:22 AM GMT","Yes","No","Places","No","food for example typical dishes from a certain place","1","","" +"2020/11/17 11:47:53 AM GMT","Yes","No","Places","Yes","nature for example beaches, waterfalls etc","2","","" +"2020/11/17 11:49:22 AM GMT","Yes","Yes","Places","No","nature for example beaches, waterfalls etc","5","","" +"2020/11/17 11:51:11 AM GMT","Yes","No","People","Yes","food for example typical dishes from a certain place","3","","" +"2020/11/17 11:51:24 AM GMT","Yes","No","Places","Yes","nature for example beaches, waterfalls etc","2","","" +"2020/11/17 11:58:54 AM GMT","Yes","No","Places","No","food for example typical dishes from a certain place","1","","" +"2020/11/17 12:04:21 PM GMT","Yes","Yes","Places","No","nature for example beaches, waterfalls etc","5","","" +"2020/11/17 12:14:37 PM GMT","Yes","No","People","Yes","food for example typical dishes from a certain place","3","","" +"2020/11/17 3:06:21 PM GMT","Yes","No","Places","Yes","nature for example beaches, waterfalls etc","1","","" +"2020/11/17 3:48:44 PM GMT","Yes","No","Places","No","nature for example beaches, waterfalls etc","4","","" +"2020/11/17 6:05:25 PM GMT","No","No","","","","","","" \ No newline at end of file diff --git a/your-project/api_28_data.xlsx b/your-project/api_28_data.xlsx new file mode 100644 index 0000000..d729f66 Binary files /dev/null and b/your-project/api_28_data.xlsx differ diff --git a/your-project/api_data.xlsx b/your-project/api_data.xlsx new file mode 100644 index 0000000..424e842 Binary files /dev/null and b/your-project/api_data.xlsx differ diff --git a/your-project/instagram_api.ipynb b/your-project/instagram_api.ipynb new file mode 100644 index 0000000..7565079 --- /dev/null +++ b/your-project/instagram_api.ipynb @@ -0,0 +1,366 @@ +{ + "metadata": { + "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.8.5-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python38564bit4f57281242da47b0a84bc03a5fa692d9", + "display_name": "Python 3.8.5 64-bit" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "\"Instagram" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from bs4 import BeautifulSoup\n", + "import requests\n", + "import pandas as pd\n", + "import numpy as np\n", + "import datetime\n", + "import re" + ] + }, + { + "source": [ + "# User Posts" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "inside the `body` we are going to explore `items`\n", + "\n", + "inside `items`:\n", + "\n", + "* in `caption` we have all the text and the # - regex to get all the # only\n", + "* in `comment_count` we get the count of the comments to the post\n", + "* in `like_count` we get the count of the likes to the post\n", + "* in `location` extract place, city, facebookid" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "# from the list of profiles I colleted manually data\n", + "username = ['abcdosviajantes',\n", + " 'carimbacasado',\n", + " 'liviajando',\n", + " 'euvouporai',\n", + " 'dicadeturista',\n", + " 'viajareumprazer',\n", + " 'ateondeeupuderir',\n", + " 'vantravelpics',\n", + " 'euviajosozinha',\n", + " 'comigoporai',\n", + " 'travelbabbo',\n", + " 'Calsnape',\n", + " 'ournextflight',\n", + " 'takemyhearteverywhere',\n", + " 'danielkordan',\n", + " 'nobackhome',\n", + " 'chrisburkard',\n", + " 'melissa','funforlouis',\n", + " 'doyoutravel',\n", + " 'izkiz',\n", + " 'tuulavintage',\n", + " 'muradosmann',\n", + " 'stalman',\n", + " 'alenpalander',\n", + " 'benjaminortega',\n", + " 'jannid',\n", + " 'jonolsson1']\n", + " #'lifeof_riley']\n", + "#len(username)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "url = \"https://instagram47.p.rapidapi.com/user_posts/\"\n", + "\n", + "df = []\n", + "\n", + "for user in username:\n", + " querystring = {\"username\":str(user)}\n", + " headers = {\n", + " 'x-rapidapi-key': \"9054abd98dmshd8ac88b14b98c4fp18a496jsnd46bb5f9cd32\",\n", + " 'x-rapidapi-host': \"instagram47.p.rapidapi.com\"\n", + " }\n", + " response = requests.request(\"GET\", url, headers=headers, params=querystring)\n", + " time.sleep(5)\n", + " raw_data = pd.json_normalize(response.json())\n", + " df.append(raw_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.concat(df, axis=0).reset_index()\n", + "#data" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " body.items\n", + "0 [{'taken_at': 1605716723, 'pk': 24452515666920...\n", + "1 [{'taken_at': 1605461792, 'pk': 24431130501389...\n", + "2 [{'taken_at': 1605632841, 'pk': 24445477598621...\n", + "3 [{'taken_at': 1605128932, 'pk': 24403208203280...\n", + "4 [{'taken_at': 1600042043, 'pk': 23976489007028...\n", + "5 [{'taken_at': 1605481235, 'pk': 24432761512866...\n", + "6 [{'taken_at': 1605646221, 'pk': 24446601478332...\n", + "7 [{'taken_at': 1604007353, 'pk': 24309123328490...\n", + "8 [{'taken_at': 1604333294, 'pk': 24336465206075...\n", + "9 [{'taken_at': 1605203166, 'pk': 24409435378134...\n", + "10 [{'taken_at': 1605723813, 'pk': 24453110370155...\n", + "11 [{'taken_at': 1605672084, 'pk': 24448771062666...\n", + "12 [{'taken_at': 1605716626, 'pk': 24452507526515...\n", + "13 [{'taken_at': 1605558690, 'pk': 24439258850958...\n", + "14 [{'taken_at': 1605704958, 'pk': 24451528735590...\n", + "15 [{'taken_at': 1605709763, 'pk': 24451931810225...\n", + "16 [{'taken_at': 1605484251, 'pk': 24433014521498...\n", + "17 [{'taken_at': 1601908135, 'pk': 24133028096225...\n", + "18 [{'taken_at': 1604349066, 'pk': 24332921751075...\n", + "19 [{'taken_at': 1605685219, 'pk': 24449872928811...\n", + "20 [{'taken_at': 1605634185, 'pk': 24445591860284...\n", + "21 [{'taken_at': 1578182301, 'pk': 22142760945307...\n", + "22 [{'taken_at': 1604156111, 'pk': 24321594110962...\n", + "23 [{'taken_at': 1605557032, 'pk': 24439119791252...\n", + "24 [{'taken_at': 1605621994, 'pk': 24444569199113...\n", + "25 [{'taken_at': 1605729455, 'pk': 24453578717859...\n", + "26 [{'taken_at': 1605644399, 'pk': 24446448691653...\n", + "27 [{'taken_at': 1604250925, 'pk': 24329532206672..." + ], + "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
body.items
0[{'taken_at': 1605716723, 'pk': 24452515666920...
1[{'taken_at': 1605461792, 'pk': 24431130501389...
2[{'taken_at': 1605632841, 'pk': 24445477598621...
3[{'taken_at': 1605128932, 'pk': 24403208203280...
4[{'taken_at': 1600042043, 'pk': 23976489007028...
5[{'taken_at': 1605481235, 'pk': 24432761512866...
6[{'taken_at': 1605646221, 'pk': 24446601478332...
7[{'taken_at': 1604007353, 'pk': 24309123328490...
8[{'taken_at': 1604333294, 'pk': 24336465206075...
9[{'taken_at': 1605203166, 'pk': 24409435378134...
10[{'taken_at': 1605723813, 'pk': 24453110370155...
11[{'taken_at': 1605672084, 'pk': 24448771062666...
12[{'taken_at': 1605716626, 'pk': 24452507526515...
13[{'taken_at': 1605558690, 'pk': 24439258850958...
14[{'taken_at': 1605704958, 'pk': 24451528735590...
15[{'taken_at': 1605709763, 'pk': 24451931810225...
16[{'taken_at': 1605484251, 'pk': 24433014521498...
17[{'taken_at': 1601908135, 'pk': 24133028096225...
18[{'taken_at': 1604349066, 'pk': 24332921751075...
19[{'taken_at': 1605685219, 'pk': 24449872928811...
20[{'taken_at': 1605634185, 'pk': 24445591860284...
21[{'taken_at': 1578182301, 'pk': 22142760945307...
22[{'taken_at': 1604156111, 'pk': 24321594110962...
23[{'taken_at': 1605557032, 'pk': 24439119791252...
24[{'taken_at': 1605621994, 'pk': 24444569199113...
25[{'taken_at': 1605729455, 'pk': 24453578717859...
26[{'taken_at': 1605644399, 'pk': 24446448691653...
27[{'taken_at': 1604250925, 'pk': 24329532206672...
\n
" + }, + "metadata": {}, + "execution_count": 40 + } + ], + "source": [ + "items = pd.DataFrame.from_dict(data['body.items'])\n", + "\n", + "#items.dropna().reset_index()\n", + "items" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Total of photos from all profiles: 408\n" + ] + } + ], + "source": [ + "df_data_list = []\n", + "r = 0\n", + "for row in range(len(df)):\n", + " size = len(data['body.items'][row])\n", + " r += size\n", + " \n", + " lst = items.loc[row].tolist()\n", + " df_data = pd.DataFrame.from_dict(items.loc[row].tolist()).T\n", + " df_data_list.append(df_data)\n", + " \n", + "print('Total of photos from all profiles: ',r)\n", + "photos = pd.concat(df_data_list, axis=0).reset_index()\n", + "#photos" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['taken_at', 'pk', 'id', 'device_timestamp', 'media_type', 'code',\n", + " 'client_cache_key', 'filter_type', 'location', 'lat', 'lng',\n", + " 'should_request_ads', 'user', 'can_viewer_reshare', 'caption_is_edited',\n", + " 'comment_likes_enabled', 'comment_threading_enabled',\n", + " 'has_more_comments', 'max_num_visible_preview_comments',\n", + " 'preview_comments', 'comments', 'can_view_more_preview_comments',\n", + " 'comment_count', 'inline_composer_display_condition', 'image_versions2',\n", + " 'original_width', 'original_height', 'like_count', 'has_liked',\n", + " 'top_likers', 'facepile_top_likers', 'photo_of_you',\n", + " 'can_see_insights_as_brand', 'caption', 'organic_tracking_token',\n", + " 'sharing_friction_info', 'is_in_profile_grid',\n", + " 'profile_grid_control_enabled', 'is_shop_the_look_eligible',\n", + " 'deleted_reason', 'integrity_review_decision', 'video_versions',\n", + " 'has_audio', 'video_duration', 'view_count', 'play_count',\n", + " 'product_type', 'clips_metadata', 'usertags', 'next_max_id',\n", + " 'is_dash_eligible', 'video_dash_manifest', 'video_codec',\n", + " 'number_of_qualities', 'title', 'nearly_complete_copyright_match',\n", + " 'media_cropping_info', 'thumbnails', 'is_post_live', 'igtv_series_info',\n", + " 'sponsor_tags'],\n", + " dtype='object')" + ] + }, + "metadata": {}, + "execution_count": 42 + } + ], + "source": [ + "final_data = pd.DataFrame(dict(photos[0])).T\n", + "final_data.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "user = pd.DataFrame(dict(final_data['user'])).T\n", + "label = user[['pk','username']]\n", + "instagram_api = final_data[['like_count','comment_count']]\n", + "user_info = pd.concat([label, instagram_api], axis=1)\n", + "#user_info" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "location = pd.DataFrame(dict(final_data['location'])).T\n", + "local = location[['short_name','facebook_places_id','city','lng','lat']]\n", + "\n", + "local_info = pd.concat([user_info, local], axis=1)\n", + "#local_info" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " pk username like_count comment_count \\\n", + "0 11704287485 abcdosviajantes 39 6 \n", + "1 11704287485 abcdosviajantes 66 27 \n", + "2 11704287485 abcdosviajantes 45 8 \n", + "3 11704287485 abcdosviajantes 65 34 \n", + "4 11704287485 abcdosviajantes 68 17 \n", + ".. ... ... ... ... \n", + "403 191681166 jonolsson1 208337 484 \n", + "404 191681166 jonolsson1 172751 304 \n", + "405 191681166 jonolsson1 173081 407 \n", + "406 191681166 jonolsson1 237006 471 \n", + "407 191681166 jonolsson1 191799 422 \n", + "\n", + " short_name facebook_places_id city \\\n", + "0 Escadaria Selarón 129293763779643 \n", + "1 Praia De Carro Quebrado 334376796650152 Maceió, Brazil \n", + "2 NaN NaN NaN \n", + "3 Pedra Do Arpoador 141182515999238 \n", + "4 Maceió-Alagoas/ Nordeste Do Brasil 100437841374667 \n", + ".. ... ... ... \n", + "403 NaN NaN NaN \n", + "404 Marbella 108331215864513 \n", + "405 Marbella 108331215864513 \n", + "406 Marbella 108331215864513 \n", + "407 Marbella 108331215864513 \n", + "\n", + " lng lat text \n", + "0 -43.1795 -22.9154 Aqui vai um pouquinho da história da escadari... \n", + "1 -35.7074 -9.66124 Se você está curioso sobre a origem do nome ... \n", + "2 NaN NaN A gastronomia no início de seu surgimento, er... \n", + "3 -43.1008 -22.8586 Você gosta de pôr do sol??? ☀️\\n\\nEntão aqu... \n", + "4 -35.7243 -9.62537 📍Dunas de Marapé, Alagoas.\\n\\nOntem perguntam... \n", + ".. ... ... ... \n", + "403 NaN NaN Cant think of a much better way to spend my 38... \n", + "404 -4.8855 36.509 Lord Hans The G is SOLD! 😳💔😭 \\n\\nAs much as I ... \n", + "405 -4.8855 36.509 100% Ultimate Driveway Goals! 💯❤️\\n10.000.000€... \n", + "406 -4.8855 36.509 Yes dad! 👶🏼🙌🏼👶🏼 The driveway is now Hypercar t... \n", + "407 -4.8855 36.509 Who thinks @jannid likes to see me and Leon pl... \n", + "\n", + "[408 rows x 10 columns]" + ], + "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
pkusernamelike_countcomment_countshort_namefacebook_places_idcitylnglattext
011704287485abcdosviajantes396Escadaria Selarón129293763779643-43.1795-22.9154Aqui vai um pouquinho da história da escadari...
111704287485abcdosviajantes6627Praia De Carro Quebrado334376796650152Maceió, Brazil-35.7074-9.66124Se você está curioso sobre a origem do nome ...
211704287485abcdosviajantes458NaNNaNNaNNaNNaNA gastronomia no início de seu surgimento, er...
311704287485abcdosviajantes6534Pedra Do Arpoador141182515999238-43.1008-22.8586Você gosta de pôr do sol??? ☀️\\n\\nEntão aqu...
411704287485abcdosviajantes6817Maceió-Alagoas/ Nordeste Do Brasil100437841374667-35.7243-9.62537📍Dunas de Marapé, Alagoas.\\n\\nOntem perguntam...
.................................
403191681166jonolsson1208337484NaNNaNNaNNaNNaNCant think of a much better way to spend my 38...
404191681166jonolsson1172751304Marbella108331215864513-4.885536.509Lord Hans The G is SOLD! 😳💔😭 \\n\\nAs much as I ...
405191681166jonolsson1173081407Marbella108331215864513-4.885536.509100% Ultimate Driveway Goals! 💯❤️\\n10.000.000€...
406191681166jonolsson1237006471Marbella108331215864513-4.885536.509Yes dad! 👶🏼🙌🏼👶🏼 The driveway is now Hypercar t...
407191681166jonolsson1191799422Marbella108331215864513-4.885536.509Who thinks @jannid likes to see me and Leon pl...
\n

408 rows × 10 columns

\n
" + }, + "metadata": {}, + "execution_count": 49 + } + ], + "source": [ + "caption = pd.DataFrame(dict(final_data['caption'])).T\n", + "text = caption['text']\n", + "api_info = pd.concat([local_info, text], axis=1)\n", + "api_info" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "#api_info.to_excel('api_data.xlsx') # use that to generate only 10 profiles that I look the photos\n", + "api_info.to_excel('api_28_data.xlsx')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file diff --git a/your-project/instagram_clean.ipynb b/your-project/instagram_clean.ipynb new file mode 100644 index 0000000..d66187d --- /dev/null +++ b/your-project/instagram_clean.ipynb @@ -0,0 +1,182 @@ +{ + "metadata": { + "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.8.3-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User #Followers #Posts Photo Location \\\n", + "0 abcdosviajantes 10400 414 Praia De Carro Quebrado \n", + "1 abcdosviajantes 10400 414 None \n", + "2 abcdosviajantes 10400 414 Pedra Do Arpoador, Rio De Janeiro \n", + "3 abcdosviajantes 10400 414 Maceió-Alagoas/ Nordeste Do Brasil \n", + "4 abcdosviajantes 10400 414 Brasil \n", + "\n", + " Likes Comments Place? People? Hashtags \n", + "0 64 27 Beach No None \n", + "1 45 8 Food No None \n", + "2 65 34 Beach No None \n", + "3 68 17 Beach No None \n", + "4 90 33 Nature No None " + ], + "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
User#Followers#PostsPhoto LocationLikesCommentsPlace?People?Hashtags
0abcdosviajantes10400414Praia De Carro Quebrado6427BeachNoNone
1abcdosviajantes10400414None458FoodNoNone
2abcdosviajantes10400414Pedra Do Arpoador, Rio De Janeiro6534BeachNoNone
3abcdosviajantes10400414Maceió-Alagoas/ Nordeste Do Brasil6817BeachNoNone
4abcdosviajantes10400414Brasil9033NatureNoNone
\n
" + }, + "metadata": {}, + "execution_count": 12 + } + ], + "source": [ + "instagram = pd.read_excel('instagram_data_collected.xlsx')\n", + "instagram.astype({'Comments': 'int64','Likes':'int64'})\n", + "instagram.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "instagram['People'] = np.where(instagram['People?']=='Yes',True,False)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "instagram['#'] = np.where(instagram['Hashtags']=='None',False,True)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "instagram.drop(['People?','Hashtags'],axis=1,inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "instagram.rename(columns={\"Place?\": \"Places\"},inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User #Followers #Posts \\\n", + "0 abcdosviajantes 10400 414 \n", + "1 abcdosviajantes 10400 414 \n", + "2 abcdosviajantes 10400 414 \n", + "3 abcdosviajantes 10400 414 \n", + "4 abcdosviajantes 10400 414 \n", + ".. ... ... ... \n", + "95 comigoporai 18600 363 \n", + "96 comigoporai 18600 363 \n", + "97 comigoporai 18600 363 \n", + "98 comigoporai 18600 363 \n", + "99 comigoporai 18600 363 \n", + "\n", + " Photo Location Likes Comments Places \\\n", + "0 Praia De Carro Quebrado 64 27 Beach \n", + "1 None 45 8 Food \n", + "2 Pedra Do Arpoador, Rio De Janeiro 65 34 Beach \n", + "3 Maceió-Alagoas/ Nordeste Do Brasil 68 17 Beach \n", + "4 Brasil 90 33 Nature \n", + ".. ... ... ... ... \n", + "95 London, United Kingdom 427 72 Food \n", + "96 London, United Kingdom 546 68 Street \n", + "97 Picadilly Circus 515 87 Street \n", + "98 Pergola and Hill Gardens, Hampstead Heath 590 100 Nature \n", + "99 London, United Kingdom 383 45 Culture \n", + "\n", + " People # \n", + "0 False False \n", + "1 False False \n", + "2 False False \n", + "3 False False \n", + "4 False False \n", + ".. ... ... \n", + "95 True False \n", + "96 True False \n", + "97 True False \n", + "98 True False \n", + "99 True False \n", + "\n", + "[100 rows x 9 columns]" + ], + "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
User#Followers#PostsPhoto LocationLikesCommentsPlacesPeople#
0abcdosviajantes10400414Praia De Carro Quebrado6427BeachFalseFalse
1abcdosviajantes10400414None458FoodFalseFalse
2abcdosviajantes10400414Pedra Do Arpoador, Rio De Janeiro6534BeachFalseFalse
3abcdosviajantes10400414Maceió-Alagoas/ Nordeste Do Brasil6817BeachFalseFalse
4abcdosviajantes10400414Brasil9033NatureFalseFalse
..............................
95comigoporai18600363London, United Kingdom42772FoodTrueFalse
96comigoporai18600363London, United Kingdom54668StreetTrueFalse
97comigoporai18600363Picadilly Circus51587StreetTrueFalse
98comigoporai18600363Pergola and Hill Gardens, Hampstead Heath590100NatureTrueFalse
99comigoporai18600363London, United Kingdom38345CultureTrueFalse
\n

100 rows × 9 columns

\n
" + }, + "metadata": {}, + "execution_count": 20 + } + ], + "source": [ + "instagram" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "instagram.to_excel('instagram_clean.xlsx')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file diff --git a/your-project/instagram_clean.xlsx b/your-project/instagram_clean.xlsx new file mode 100644 index 0000000..4d98715 Binary files /dev/null and b/your-project/instagram_clean.xlsx differ diff --git a/your-project/instagram_data.ipynb b/your-project/instagram_data.ipynb new file mode 100644 index 0000000..aa6e2ad --- /dev/null +++ b/your-project/instagram_data.ipynb @@ -0,0 +1,798 @@ +{ + "metadata": { + "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.8.5-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python38564bit4f57281242da47b0a84bc03a5fa692d9", + "display_name": "Python 3.8.5 64-bit" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# Data Import from Instagram, Survey and Instagram API\n", + "\n", + "\"Instagram" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "import re\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns" + ] + }, + { + "source": [ + "## data collected from Instagram manually" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User #Followers #Posts Photo Location \\\n", + "0 abcdosviajantes 10400 414 Praia De Carro Quebrado \n", + "1 abcdosviajantes 10400 414 None \n", + "2 abcdosviajantes 10400 414 Pedra Do Arpoador, Rio De Janeiro \n", + "3 abcdosviajantes 10400 414 Maceió-Alagoas/ Nordeste Do Brasil \n", + "4 abcdosviajantes 10400 414 Brasil \n", + "\n", + " Likes Comments Places People # \n", + "0 64 27 Beach False False \n", + "1 45 8 Food False False \n", + "2 65 34 Beach False False \n", + "3 68 17 Beach False False \n", + "4 90 33 Nature False False " + ], + "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
User#Followers#PostsPhoto LocationLikesCommentsPlacesPeople#
0abcdosviajantes10400414Praia De Carro Quebrado6427BeachFalseFalse
1abcdosviajantes10400414None458FoodFalseFalse
2abcdosviajantes10400414Pedra Do Arpoador, Rio De Janeiro6534BeachFalseFalse
3abcdosviajantes10400414Maceió-Alagoas/ Nordeste Do Brasil6817BeachFalseFalse
4abcdosviajantes10400414Brasil9033NatureFalseFalse
\n
" + }, + "metadata": {}, + "execution_count": 28 + } + ], + "source": [ + "instagram = pd.read_excel('instagram_clean.xlsx')\n", + "instagram.astype({'Comments': 'int64','Likes':'int64'})\n", + "instagram.drop(['Unnamed: 0'],axis=1,inplace=True)\n", + "instagram.head()" + ] + }, + { + "source": [ + "## data collected from API for the same profiles above" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " pk username like_count comment_count \\\n", + "0 11704287485 abcdosviajantes 32 5 \n", + "1 11704287485 abcdosviajantes 66 27 \n", + "2 11704287485 abcdosviajantes 45 8 \n", + "3 11704287485 abcdosviajantes 65 34 \n", + "4 11704287485 abcdosviajantes 68 17 \n", + "\n", + " short_name facebook_places_id city \\\n", + "0 Escadaria Selarón 1.292938e+14 NaN \n", + "1 Praia De Carro Quebrado 3.343768e+14 Maceió, Brazil \n", + "2 NaN NaN NaN \n", + "3 Pedra Do Arpoador 1.411825e+14 NaN \n", + "4 Maceió-Alagoas/ Nordeste Do Brasil 1.004378e+14 NaN \n", + "\n", + " lng lat text \n", + "0 -43.179456 -22.915445 Aqui vai um pouquinho da história da escadari... \n", + "1 -35.707433 -9.661238 Se você está curioso sobre a origem do nome ... \n", + "2 NaN NaN A gastronomia no início de seu surgimento, er... \n", + "3 -43.100767 -22.858558 Você gosta de pôr do sol??? ☀️\\n\\nEntão aqu... \n", + "4 -35.724263 -9.625366 📍Dunas de Marapé, Alagoas.\\n\\nOntem perguntam... " + ], + "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
pkusernamelike_countcomment_countshort_namefacebook_places_idcitylnglattext
011704287485abcdosviajantes325Escadaria Selarón1.292938e+14NaN-43.179456-22.915445Aqui vai um pouquinho da história da escadari...
111704287485abcdosviajantes6627Praia De Carro Quebrado3.343768e+14Maceió, Brazil-35.707433-9.661238Se você está curioso sobre a origem do nome ...
211704287485abcdosviajantes458NaNNaNNaNNaNNaNA gastronomia no início de seu surgimento, er...
311704287485abcdosviajantes6534Pedra Do Arpoador1.411825e+14NaN-43.100767-22.858558Você gosta de pôr do sol??? ☀️\\n\\nEntão aqu...
411704287485abcdosviajantes6817Maceió-Alagoas/ Nordeste Do Brasil1.004378e+14NaN-35.724263-9.625366📍Dunas de Marapé, Alagoas.\\n\\nOntem perguntam...
\n
" + }, + "metadata": {}, + "execution_count": 29 + } + ], + "source": [ + "api_info = pd.read_excel('api_data.xlsx')\n", + "api_info.drop(columns=['Unnamed: 0'],inplace=True)\n", + "api_info.head()" + ] + }, + { + "source": [ + "## data collected from survey" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Carimbo de data/hora Follow Profile Follow Hashtag People or Place \\\n", + "0 2020/11/16 3:36:24 PM GMT 1 0 0 \n", + "1 2020/11/16 3:36:40 PM GMT 1 0 1 \n", + "2 2020/11/16 3:39:10 PM GMT 1 0 1 \n", + "3 2020/11/16 3:55:11 PM GMT 1 1 0 \n", + "4 2020/11/16 4:09:03 PM GMT 1 1 0 \n", + "\n", + " Caption important? Culture, Nature or Food \\\n", + "0 0 nature for example beaches, waterfalls etc \n", + "1 0 cultural eg museums, statues etc \n", + "2 0 nature for example beaches, waterfalls etc \n", + "3 1 nature for example beaches, waterfalls etc \n", + "4 0 nature for example beaches, waterfalls etc \n", + "\n", + " Comment Freq \n", + "0 1 \n", + "1 1 \n", + "2 2 \n", + "3 1 \n", + "4 1 " + ], + "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
Carimbo de data/horaFollow ProfileFollow HashtagPeople or PlaceCaption important?Culture, Nature or FoodComment Freq
02020/11/16 3:36:24 PM GMT1000nature for example beaches, waterfalls etc1
12020/11/16 3:36:40 PM GMT1010cultural eg museums, statues etc1
22020/11/16 3:39:10 PM GMT1010nature for example beaches, waterfalls etc2
32020/11/16 3:55:11 PM GMT1101nature for example beaches, waterfalls etc1
42020/11/16 4:09:03 PM GMT1100nature for example beaches, waterfalls etc1
\n
" + }, + "metadata": {}, + "execution_count": 30 + } + ], + "source": [ + "survey = pd.read_excel('survey_clean.xlsx')\n", + "survey.drop(['Unnamed: 0','index'],axis=1,inplace=True)\n", + "survey.head()" + ] + }, + { + "source": [ + "# Inferential statistics\n", + "## Go deep into information colleteced and try to understand better how features are relate\n", + "\n", + "* Q1 - Understand the target public (market search) --> Survey\n", + "* Q2 - People who follow travel profile, follow some specific hashtag related to travel? --> Survey\n", + "* Q3 - The amount of followers is related with the amount of posts that a profile have? ($\\uparrow$ followers $\\uparrow$ posts)\n", + "* Q4 - Photo with people has more likes than without people? (relate people with likes)\n", + "* Q5 - Hashtags is important to get likes? (relate likes with hashtags)\n", + "* Q6 - Wich type of places have more likes?\n", + "\n", + "Let's investigate these claims and see if we can find proof to refute or support them." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## Question 1 and 2:\n", + "\n", + "### From the Survey we get our target public using `confidence interval` for the questions: 'Do you follow any travel Instagram?' and 'Do you follow any travel-related hashtag?'.\n", + "\n", + "### For profile: (0.4638890446167189, 0.7633836826560083)\n", + "\n", + "### For hashtags: (0.0804922492952757, 0.3285986597956334)\n", + "\n", + "It can be concluded that there is a confidence interval considered reasonable that shows the population's interest in the topic. On the other hand, people don't care about hashtags." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as st" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " User #Followers #Posts Photo Location \\\n", + "0 abcdosviajantes 10400 414 Praia De Carro Quebrado \n", + "1 abcdosviajantes 10400 414 None \n", + "2 abcdosviajantes 10400 414 Pedra Do Arpoador, Rio De Janeiro \n", + "3 abcdosviajantes 10400 414 Maceió-Alagoas/ Nordeste Do Brasil \n", + "4 abcdosviajantes 10400 414 Brasil \n", + "\n", + " Likes Comments Places People # \n", + "0 64 27 Beach False False \n", + "1 45 8 Food False False \n", + "2 65 34 Beach False False \n", + "3 68 17 Beach False False \n", + "4 90 33 Nature False False " + ], + "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
User#Followers#PostsPhoto LocationLikesCommentsPlacesPeople#
0abcdosviajantes10400414Praia De Carro Quebrado6427BeachFalseFalse
1abcdosviajantes10400414None458FoodFalseFalse
2abcdosviajantes10400414Pedra Do Arpoador, Rio De Janeiro6534BeachFalseFalse
3abcdosviajantes10400414Maceió-Alagoas/ Nordeste Do Brasil6817BeachFalseFalse
4abcdosviajantes10400414Brasil9033NatureFalseFalse
\n
" + }, + "metadata": {}, + "execution_count": 32 + } + ], + "source": [ + "instagram.head()" + ] + }, + { + "source": [ + "## Question 3: The amount of followers is related with the amount of posts that a profile have? ($\\uparrow$ followers $\\uparrow$ posts)" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "users = instagram['User'].unique().tolist()\n", + "followers = instagram['#Followers'].unique().tolist()\n", + "posts = instagram['#Posts'].unique().tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# we have to exclude an outlier in our sample\n", + "\n", + "followers = [10400, 65200, 34900, 41200, 67800, 22600, 22700, 31400, 18600]\n", + "posts = [414, 894, 379, 693, 1182, 548, 197, 532, 363]" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2020-11-19T23:05:42.392934\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "sns.scatterplot(followers,posts)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Rsquare is 0.7729783539916548\np-value: 0.0017894949838157125\n" + ] + } + ], + "source": [ + "# linear regression\n", + "\n", + "x = np.array(followers)\n", + "y = np.array(posts)\n", + "\n", + "regression = st.linregress(x,y)\n", + "#print(regression)\n", + "results = regression.slope*x + regression.intercept\n", + "rsquare = regression.rvalue**2\n", + "pValue = regression.pvalue\n", + "print('Rsquare is',rsquare)\n", + "print('p-value:', pValue)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2020-11-19T23:05:42.865668\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnQAAAHgCAYAAAAsdvAHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABDTklEQVR4nO3dd3yV5eH//9eVhBEIAgZikSGgyB5CUNyzjtqqWD/92NpCbfu1FmdrXbV1+1M/arWOam21SmtrrRVXbV11daiEvQURBERGWIYhJLl+f5wbGhURJMmdk/N6Ph555D73uc/JOxdyfHNf9wgxRiRJkpS98tIOIEmSpJ1joZMkScpyFjpJkqQsZ6GTJEnKchY6SZKkLGehkyRJynIFaQeoC+3atYtdu3ZNO4YkSdJnGjdu3PIYY/udeY9GWei6du1KWVlZ2jEkSZI+Uwhh/s6+h1OukiRJWc5CJ0mSlOUsdJIkSVmuUR5DtzWbNm1i4cKFbNiwIe0oqgfNmzenU6dONGnSJO0okiTVuZwpdAsXLqRVq1Z07dqVEELacVSHYoyUl5ezcOFCunXrlnYcSZLqXM5MuW7YsIHi4mLLXA4IIVBcXOzeWElSzsiZQgdY5nKIf9aSpFxSZ4UuhHB/CGFpCGFqjXU3hRBmhhAmhxDGhBDa1Hju0hDCnBDCrBDCMTXWH5usmxNCuKSu8taHoqKiT6y75557GD16dL3mOOyww+jZsycDBw5k6NChTJw4sV5//rY8+eST3HDDDWnHkCQpq9TlHroHgGM/tu55oF+McQDwFnApQAihD3Aq0Dd5zS9DCPkhhHzgLuA4oA/w9WTbRuPMM89kxIgRdfb+MUaqq6s/sf6hhx5i0qRJjBo1igsvvLBWflZVVdVOv8cJJ5zAJZdkdW+XJKne1VmhizG+Cqz42LrnYoyVycPXgU7J8onAwzHGD2OM7wBzgH2Trzkxxrkxxo3Aw8m2jcaVV17JzTffDGT2nF188cXsu+++7L333rz22mtApihdeOGFDB06lAEDBvCrX/0KgIqKCo488kgGDx5M//79eeKJJwCYN28ePXv2ZMSIEfTr148FCxZ86s/ff//9WbRoEQBr167lO9/5Dvvuuy/77LPPlvdbt24dX/va1+jTpw/Dhw9nv/3223InjqKiIi644AIGDhzIf/7zH37/+9+z7777MmjQIL7//e9TVVVFVVUV3/72t+nXrx/9+/fn1ltvBeD222+nT58+DBgwgFNPPRWABx54gLPPPnvL73HEEUcwYMAAjjzySN59910Avv3tb3PuuedywAEH0L17dx599NHa+wORJCkLpXmW63eAPyXLHckUvM0WJusAFnxs/X5be7MQwhnAGQBdunTZ9k8edz6snLiDcT9D20Ew5LadfpvKykrefPNNnnnmGa666ipeeOEF7rvvPlq3bs3YsWP58MMPOfDAAzn66KPp3LkzY8aMYZdddmH58uUMGzaME044AYDZs2fz4IMPMmzYsG3+vL///e+cdNJJAFx33XUcccQR3H///axatYp9992Xo446irvvvpu2bdsyffp0pk6dyqBBg7a8fu3atey3337ccsstzJgxgxtvvJF//etfNGnShFGjRvHQQw/Rt29fFi1axNSpmdn3VatWAXDDDTfwzjvv0KxZsy3rajrnnHMYOXIkI0eO5P777+fcc8/l8ccfB2Dx4sX885//ZObMmZxwwgmccsopOzXukiRls1QKXQjhMqASeKi23jPGeC9wL0BpaWmsrfetbyeffDIAQ4YMYd68eQA899xzTJ48ecueqNWrVzN79mw6derET37yE1599VXy8vJYtGgRS5YsAWCPPfbYZpk77bTT2LhxIxUVFVuOoXvuued48sknt+wx3LBhA++++y7//Oc/Oe+88wDo168fAwYM2PI++fn5fPWrXwXgxRdfZNy4cQwdOhSA9evXU1JSwle+8hXmzp3LOeecw/HHH8/RRx8NwIABAzjttNM46aSTtpTKmv7zn//w2GOPAfCtb32Liy66aMtzJ510Enl5efTp02fL7yxJUq6q90IXQvg28GXgyBjj5uK1COhcY7NOyTq2sf7zq4U9aXWlWbNmQKYoVVZmZqdjjNxxxx0cc8wxH9n2gQceYNmyZYwbN44mTZrQtWvXLZfqaNmy5TZ/zkMPPcSQIUO48MILOeecc3jssceIMfKXv/yFnj17bnfe5s2bk5+fvyXnyJEjuf766z+x3aRJk3j22We55557eOSRR7j//vv561//yquvvspTTz3Fddddx5QpU7b7524ep80/V5KkXFavly0JIRwLXAScEGNcV+OpJ4FTQwjNQgjdgB7Am8BYoEcIoVsIoSmZEyeerM/MDcExxxzD3XffzaZNmwB46623WLt2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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "f , (ax) = plt.subplots(figsize=(10,8))\n", + "ax = sns.lineplot(x,results, color='orange',label='Linear Regression')\n", + "ax = sns.scatterplot(followers,posts, color='purple',label='Data')\n", + "ax.set_xlabel('Followers')\n", + "ax.set_ylabel('Posts')\n", + "ax.legend()\n", + "#ax.savefig(\"linear_regression.png\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "## Linear relationship between number of followers and amount of posts" + ] + }, + { + "source": [ + "## Question 4: Photo with people has more likes than without people? (relate people with likes)\n", + "\n", + "The chi squared test check if there is independence between two samples.\n", + "\n", + "$H_{0}$ = The amount of likes does not depende if are people in the photo\n", + "\n", + "First we need to divide the likes by \"popular\" or not... I use 1000 likes as filter" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "people = instagram[['People','Likes']]\n", + "people['Likes'] = np.where(people['Likes']>=1000,True,False)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " People Likes\n", + "0 False False\n", + "1 False False\n", + "2 False False\n", + "3 False False\n", + "4 False False" + ], + "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
PeopleLikes
0FalseFalse
1FalseFalse
2FalseFalse
3FalseFalse
4FalseFalse
\n
" + }, + "metadata": {}, + "execution_count": 40 + } + ], + "source": [ + "people.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": {}, + "outputs": [], + "source": [ + "table = pd.crosstab(people['People'],people['Likes'])" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The test statistic is 6.515729352943323 \nThe p-value of the test is 0.010692446029280068 \nDegrees of freedom = 1 \n" + ] + } + ], + "source": [ + "from scipy.stats import chi2_contingency\n", + "# Chi-square test of independence.\n", + "chi2, p, dof, ex = st.chi2_contingency(table)\n", + "print('The test statistic is {0} \\nThe p-value of the test is {1} \\nDegrees of freedom = {2} '.format(chi2,p,dof))" + ] + }, + { + "source": [ + "### Conclusion: Reject the null hypothesis. The number of likes depende if have people in the photo." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## Question 5: Hashtags is important to get likes? (relate likes with hashtags)\n", + "\n", + "Using the same idea for dataframe filter previous and the same ideia to null hypothesis but for hashtags" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [], + "source": [ + "hashtags = instagram[['#','Likes']]\n", + "hashtags['#'] = np.where(hashtags['Likes']>=1000,True,False)" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "metadata": {}, + "outputs": [], + "source": [ + "table = pd.crosstab(hashtags['#'],hashtags['Likes'])" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The test statistic is 100.0 \nThe p-value of the test is 0.3696681720040789 \nDegrees of freedom = 96 \n" + ] + } + ], + "source": [ + "from scipy.stats import chi2_contingency\n", + "# Chi-square test of independence.\n", + "chi2, p, dof, ex = st.chi2_contingency(table)\n", + "print('The test statistic is {0} \\nThe p-value of the test is {1} \\nDegrees of freedom = {2} '.format(chi2,p,dof))" + ] + }, + { + "source": [ + "### Conclusion: Accept the null hypothesis. The number of likes doesn't depende if have hashtags in the photo." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## Question 6: Wich type of places have more likes?\n", + "\n", + "### Place | Location\n", + "\n", + "Checking if all types of place have the same average for likes?\n", + "\n", + "Looking the instagram dataframe, we have the idea that Beach have much more likes than anywhere.\n", + "\n", + "Let's first check the mean of each type of place using `ANOVA`" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2020-11-19T23:27:41.749664\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plc = instagram.groupby('Places').agg({'Likes':'mean'}).reset_index()\n", + "sns.barplot(plc['Places'],plc['Likes'])\n", + "#fig.savefig(\"places.png\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [], + "source": [ + "# Types of places\n", + "places_list = instagram['Places'].unique().tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [], + "source": [ + "df_list = []\n", + "for place in places_list:\n", + " df = instagram[instagram['Places']==str(place)]\n", + " lst = df['Likes'].tolist()\n", + " df_list.append(lst)" + ] + }, + { + "source": [ + "## ANOVA Test\n", + "\n", + "In statistics, Analysis of Variance (ANOVA) is also used to analyze the differences among group means. The difference between t-test and ANOVA is the former is ued to compare two groups whereas the latter is used to compare three or more groups.\n", + "\n", + "* $H_0$: the means for each type of place are equal --> $\\mu_{Airport} = \\mu_{Beach} = \\mu_{Couple} = \\mu_{Culture} = \\mu_{Food} = \\mu_{Hotel} = \\mu_{Nature} = \\mu_{People} = \\mu_{Street}$\n", + "\n", + "* $H_1$: the means for each type of place are different" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "P-value: 0.002606129344878134 \nF statistic: 3.26018783621479\n" + ] + } + ], + "source": [ + "tStats, pValue = st.f_oneway(*df_list)\n", + "print('P-value: {0} \\nF statistic: {1}'.format(pValue,tStats))" + ] + }, + { + "source": [ + "### Conclusion: reject the null hypothesis, that means the mean of each type of places are different. So thare are some preference about places (more likes to a certain place)." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "['Beach',\n", + " 'Food',\n", + " 'Nature',\n", + " 'Culture',\n", + " 'Street',\n", + " 'Airport',\n", + " 'People',\n", + " 'Couple',\n", + " 'Hotel']" + ] + }, + "metadata": {}, + "execution_count": 203 + } + ], + "source": [ + "places_list" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "There is a match! Beach and Food with p-value: 0.2236430636708993\nThere is a match! Beach and Nature with p-value: 0.06235476182978634\nSorry\nSorry\nThere is a match! Beach and Airport with p-value: 0.5539579179795538\nSorry\nSorry\nThere is a match! Beach and Hotel with p-value: 0.13871861741327116\nThere is a match! Food and Beach with p-value: 0.2236430636708993\nThere is a match! Food and Nature with p-value: 0.2492492407947242\nThere is a match! Food and Culture with p-value: 0.6424945662503031\nThere is a match! Food and Street with p-value: 0.23053128125906117\nThere is a match! Food and Airport with p-value: 0.06744510474833904\nSorry\nSorry\nSorry\nThere is a match! Nature and Beach with p-value: 0.06235476182978634\nThere is a match! Nature and Food with p-value: 0.2492492407947242\nThere is a match! Nature and Culture with p-value: 0.08988291748507465\nThere is a match! Nature and Street with p-value: 0.5573978970642179\nThere is a match! Nature and Airport with p-value: 0.9838350527575273\nSorry\nSorry\nThere is a match! Nature and Hotel with p-value: 0.6406552708802529\nSorry\nThere is a match! Culture and Food with p-value: 0.6424945662503031\nThere is a match! Culture and Nature with p-value: 0.08988291748507465\nThere is a match! Culture and Street with p-value: 0.15081245218378975\nThere is a match! Culture and Airport with p-value: 0.3207439798594794\nSorry\nSorry\nThere is a match! Culture and Hotel with p-value: 0.12322112314317463\nSorry\nThere is a match! Street and Food with p-value: 0.23053128125906117\nThere is a match! Street and Nature with p-value: 0.5573978970642179\nThere is a match! Street and Culture with p-value: 0.15081245218378975\nThere is a match! Street and Airport with p-value: 0.7930753152790807\nSorry\nSorry\nThere is a match! Street and Hotel with p-value: 0.994913469324417\nThere is a match! Airport and Beach with p-value: 0.5539579179795538\nThere is a match! Airport and Food with p-value: 0.06744510474833904\nThere is a match! Airport and Nature with p-value: 0.9838350527575273\nThere is a match! Airport and Culture with p-value: 0.3207439798594794\nThere is a match! Airport and Street with p-value: 0.7930753152790807\nSorry\nSorry\nThere is a match! Airport and Hotel with p-value: 0.5060915721648986\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nSorry\nThere is a match! Hotel and Beach with p-value: 0.13871861741327116\nSorry\nThere is a match! Hotel and Nature with p-value: 0.6406552708802529\nThere is a match! Hotel and Culture with p-value: 0.12322112314317463\nThere is a match! Hotel and Street with p-value: 0.994913469324417\nThere is a match! Hotel and Airport with p-value: 0.5060915721648986\nSorry\nSorry\n" + ] + } + ], + "source": [ + "for i in range(len(places_list)):\n", + " for y in range(len(places_list)):\n", + " try:\n", + " if i == y:\n", + " pass\n", + " else:\n", + " tStats, pValue = st.ttest_ind(df_list[i],df_list[y])\n", + " if pValue > 0.05:\n", + " print('There is a match!',places_list[i],' and',places_list[y],'with p-value:',pValue)\n", + " else:\n", + " print('Sorry')\n", + " except:\n", + " continue" + ] + }, + { + "source": [ + "### Conclusion: none of the pairs have significant different of the number of likes" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Places Likes\n", + "0 True 64\n", + "1 False 45\n", + "2 True 65\n", + "3 True 68\n", + "4 False 90" + ], + "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
PlacesLikes
0True64
1False45
2True65
3True68
4False90
\n
" + }, + "metadata": {}, + "execution_count": 123 + } + ], + "source": [ + "beach_likes = instagram[['Places','Likes']]\n", + "beach_likes['Places'] = np.where(beach_likes['Places']=='Beach',True,False)\n", + "beach_likes['Popular'] = np.where(beach_likes['Likes']>=1000,1,0)\n", + "beach_likes.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Popular 0 1\n", + "Places \n", + "False 43 28\n", + "True 10 19" + ], + "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
Popular01
Places
False4328
True1019
\n
" + }, + "metadata": {}, + "execution_count": 121 + } + ], + "source": [ + "table = pd.crosstab(beach_likes['Places'],beach_likes['Popular'])\n", + "table" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Likes\n", + "Places \n", + "False 78155\n", + "True 60680" + ], + "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
Likes
Places
False78155
True60680
\n
" + }, + "metadata": {}, + "execution_count": 124 + } + ], + "source": [ + "beach_likes.groupby('Places').agg({'Likes':'sum'})" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The test statistic is 4.624106716184088 \nThe p-value of the test is 0.031525673081817536 \nDegrees of freedom = 1 \n" + ] + } + ], + "source": [ + "from scipy.stats import chi2_contingency\n", + "# Chi-square test of independence.\n", + "chi2, p, dof, ex = st.chi2_contingency(table)\n", + "print('The test statistic is {0} \\nThe p-value of the test is {1} \\nDegrees of freedom = {2} '.format(chi2,p,dof))" + ] + }, + { + "source": [ + "### Conclusion: Beach is not the most significant classification of place." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file diff --git a/your-project/instagram_data_collected.xlsx b/your-project/instagram_data_collected.xlsx new file mode 100644 index 0000000..3efc600 Binary files /dev/null and b/your-project/instagram_data_collected.xlsx differ diff --git a/your-project/instagram_logo.jpg b/your-project/instagram_logo.jpg new file mode 100644 index 0000000..7daf0fe Binary files /dev/null and b/your-project/instagram_logo.jpg differ diff --git a/your-project/linear.png b/your-project/linear.png new file mode 100644 index 0000000..55da080 Binary files /dev/null and b/your-project/linear.png differ diff --git a/your-project/logo-ironhack-blue.png b/your-project/logo-ironhack-blue.png new file mode 100644 index 0000000..8f8ad3f Binary files /dev/null and b/your-project/logo-ironhack-blue.png differ diff --git a/your-project/places.png b/your-project/places.png new file mode 100644 index 0000000..7e44068 Binary files /dev/null and b/your-project/places.png differ diff --git a/your-project/survey.ipynb b/your-project/survey.ipynb new file mode 100644 index 0000000..13216e8 --- /dev/null +++ b/your-project/survey.ipynb @@ -0,0 +1,556 @@ +{ + "metadata": { + "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.8.3-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Carimbo de data/hora Do you follow any travel Instagram? \\\n", + "0 2020/11/16 3:36:24 PM GMT Yes \n", + "1 2020/11/16 3:36:40 PM GMT Yes \n", + "2 2020/11/16 3:39:10 PM GMT Yes \n", + "3 2020/11/16 3:40:55 PM GMT No \n", + "4 2020/11/16 3:42:27 PM GMT No \n", + "\n", + " Do you follow any travel-related hashtag? \\\n", + "0 No \n", + "1 No \n", + "2 No \n", + "3 No \n", + "4 No \n", + "\n", + " Do you prefer to see photos with people or just places? \\\n", + "0 Places \n", + "1 People \n", + "2 People \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Is the description of the photo important to you? \\\n", + "0 No \n", + "1 No \n", + "2 No \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Do you prefer culture, nature, or food posts? \\\n", + "0 nature for example beaches, waterfalls etc \n", + "1 cultural eg museums, statues etc \n", + "2 nature for example beaches, waterfalls etc \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Do you usually comment when you like the photo? \n", + "0 1.0 \n", + "1 1.0 \n", + "2 2.0 \n", + "3 NaN \n", + "4 NaN " + ], + "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
Carimbo de data/horaDo you follow any travel Instagram?Do you follow any travel-related hashtag?Do you prefer to see photos with people or just places?Is the description of the photo important to you?Do you prefer culture, nature, or food posts?Do you usually comment when you like the photo?
02020/11/16 3:36:24 PM GMTYesNoPlacesNonature for example beaches, waterfalls etc1.0
12020/11/16 3:36:40 PM GMTYesNoPeopleNocultural eg museums, statues etc1.0
22020/11/16 3:39:10 PM GMTYesNoPeopleNonature for example beaches, waterfalls etc2.0
32020/11/16 3:40:55 PM GMTNoNoNaNNaNNaNNaN
42020/11/16 3:42:27 PM GMTNoNoNaNNaNNaNNaN
\n
" + }, + "metadata": {}, + "execution_count": 3 + } + ], + "source": [ + "survey = pd.read_csv('C:\\cygwin\\home\\Cinthya\\Ironhack_bootcamp\\Project-Week-6\\your-project\\Survey_TravelPhotosStudy.csv')\n", + "survey.drop(['Unnamed: 7','Unnamed: 8'],axis=1,inplace=True)\n", + "survey.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Index(['Carimbo de data/hora', 'Do you follow any travel Instagram?',\n", + " 'Do you follow any travel-related hashtag?',\n", + " 'Do you prefer to see photos with people or just places?',\n", + " 'Is the description of the photo important to you?',\n", + " 'Do you prefer culture, nature, or food posts?',\n", + " 'Do you usually comment when you like the photo?'],\n", + " dtype='object')" + ] + }, + "metadata": {}, + "execution_count": 4 + } + ], + "source": [ + "survey.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Carimbo de data/hora Follow Profile Follow Hashtag People or Place \\\n", + "0 2020/11/16 3:36:24 PM GMT Yes No Places \n", + "1 2020/11/16 3:36:40 PM GMT Yes No People \n", + "2 2020/11/16 3:39:10 PM GMT Yes No People \n", + "3 2020/11/16 3:40:55 PM GMT No No NaN \n", + "4 2020/11/16 3:42:27 PM GMT No No NaN \n", + "5 2020/11/16 3:55:11 PM GMT Yes Yes Places \n", + "6 2020/11/16 3:55:27 PM GMT No No NaN \n", + "7 2020/11/16 4:09:03 PM GMT Yes Yes Places \n", + "8 2020/11/16 4:16:30 PM GMT Yes Yes Places \n", + "9 2020/11/16 4:32:19 PM GMT Yes No Places \n", + "\n", + " Caption important? Culture, Nature or Food Comment Freq \n", + "0 No nature for example beaches, waterfalls etc 1.0 \n", + "1 No cultural eg museums, statues etc 1.0 \n", + "2 No nature for example beaches, waterfalls etc 2.0 \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "5 Yes nature for example beaches, waterfalls etc 1.0 \n", + "6 NaN NaN NaN \n", + "7 No nature for example beaches, waterfalls etc 1.0 \n", + "8 Yes cultural eg museums, statues etc 4.0 \n", + "9 No nature for example beaches, waterfalls etc 1.0 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Carimbo de data/horaFollow ProfileFollow HashtagPeople or PlaceCaption important?Culture, Nature or FoodComment Freq
02020/11/16 3:36:24 PM GMTYesNoPlacesNonature for example beaches, waterfalls etc1.0
12020/11/16 3:36:40 PM GMTYesNoPeopleNocultural eg museums, statues etc1.0
22020/11/16 3:39:10 PM GMTYesNoPeopleNonature for example beaches, waterfalls etc2.0
32020/11/16 3:40:55 PM GMTNoNoNaNNaNNaNNaN
42020/11/16 3:42:27 PM GMTNoNoNaNNaNNaNNaN
52020/11/16 3:55:11 PM GMTYesYesPlacesYesnature for example beaches, waterfalls etc1.0
62020/11/16 3:55:27 PM GMTNoNoNaNNaNNaNNaN
72020/11/16 4:09:03 PM GMTYesYesPlacesNonature for example beaches, waterfalls etc1.0
82020/11/16 4:16:30 PM GMTYesYesPlacesYescultural eg museums, statues etc4.0
92020/11/16 4:32:19 PM GMTYesNoPlacesNonature for example beaches, waterfalls etc1.0
\n
" + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "survey.rename(columns={'Do you follow any travel Instagram?':'Follow Profile',\n", + " 'Do you follow any travel-related hashtag?':'Follow Hashtag',\n", + " 'Do you prefer to see photos with people or just places?':'People or Place',\n", + " 'Is the description of the photo important to you?':'Caption important?',\n", + " 'Do you prefer culture, nature, or food posts?':'Culture, Nature or Food',\n", + " 'Do you usually comment when you like the photo?':'Comment Freq'},inplace=True)\n", + "survey.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "44" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ], + "source": [ + "len(survey)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "general_pop = survey[['Follow Profile', 'Follow Hashtag']]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "general_pop.to_excel('survey_pop.xlsx')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Follow Profile Follow Hashtag\n", + "0 1 0\n", + "1 1 0\n", + "2 1 0\n", + "3 0 0\n", + "4 0 0" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Follow ProfileFollow Hashtag
010
110
210
300
400
\n
" + }, + "metadata": {}, + "execution_count": 6 + } + ], + "source": [ + "general_pop['Follow Profile'] = general_pop['Follow Profile'].apply(lambda x: 1 if x=='Yes' else 0)\n", + "general_pop['Follow Hashtag'] = general_pop['Follow Hashtag'].apply(lambda x: 1 if x=='Yes' else 0)\n", + "\n", + "general_pop.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(5.222422796279005,\n", + " 0.022297464716215597,\n", + " 1,\n", + " array([[13.52272727, 3.47727273],\n", + " [21.47727273, 5.52272727]]))" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ], + "source": [ + "table = pd.crosstab(general_pop['Follow Profile'],general_pop['Follow Hashtag'])\n", + "\n", + "from scipy.stats import chi2_contingency\n", + "# Chi-square test of independence.\n", + "chi2_contingency(table)" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as st" + ] + }, + { + "source": [ + "### Follow Profile Column" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(0.4638890446167189, 0.7633836826560083)" + ] + }, + "metadata": {}, + "execution_count": 171 + } + ], + "source": [ + "mean = general_pop['Follow Profile'].mean()\n", + "sigma = general_pop['Follow Profile'].std(ddof=1)\n", + "n = survey.shape[0]\n", + "st.t.interval(0.95,n-1, loc=mean, scale=sigma/np.sqrt(n))" + ] + }, + { + "source": [ + "### Follow Hashtag Column" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(0.0804922492952757, 0.3285986597956334)" + ] + }, + "metadata": {}, + "execution_count": 172 + } + ], + "source": [ + "mean = general_pop['Follow Hashtag'].mean()\n", + "sigma = general_pop['Follow Hashtag'].std(ddof=1)\n", + "n = survey.shape[0]\n", + "st.t.interval(0.95,n-1, loc=mean, scale=sigma/np.sqrt(n))" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "source": [ + "## Surveys positive" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "27" + ] + }, + "metadata": {}, + "execution_count": 195 + } + ], + "source": [ + "survey_pos = survey[['Carimbo de data/hora','Caption important?', 'Culture, Nature or Food',\n", + " 'Comment Freq']]\n", + "survey_pos = survey.dropna(axis=0).reset_index()\n", + "survey_pos.shape[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " index Carimbo de data/hora Follow Profile Follow Hashtag \\\n", + "0 0 2020/11/16 3:36:24 PM GMT Yes No \n", + "1 1 2020/11/16 3:36:40 PM GMT Yes No \n", + "2 2 2020/11/16 3:39:10 PM GMT Yes No \n", + "3 5 2020/11/16 3:55:11 PM GMT Yes Yes \n", + "4 7 2020/11/16 4:09:03 PM GMT Yes Yes \n", + "5 8 2020/11/16 4:16:30 PM GMT Yes Yes \n", + "6 9 2020/11/16 4:32:19 PM GMT Yes No \n", + "7 11 2020/11/16 5:40:26 PM GMT Yes No \n", + "8 12 2020/11/16 5:42:24 PM GMT Yes No \n", + "9 13 2020/11/16 6:00:55 PM GMT Yes No \n", + "\n", + " People or Place Caption important? \\\n", + "0 Places No \n", + "1 People No \n", + "2 People No \n", + "3 Places Yes \n", + "4 Places No \n", + "5 Places Yes \n", + "6 Places No \n", + "7 People Yes \n", + "8 Places No \n", + "9 People No \n", + "\n", + " Culture, Nature or Food Comment Freq \n", + "0 nature for example beaches, waterfalls etc 1.0 \n", + "1 cultural eg museums, statues etc 1.0 \n", + "2 nature for example beaches, waterfalls etc 2.0 \n", + "3 nature for example beaches, waterfalls etc 1.0 \n", + "4 nature for example beaches, waterfalls etc 1.0 \n", + "5 cultural eg museums, statues etc 4.0 \n", + "6 nature for example beaches, waterfalls etc 1.0 \n", + "7 nature for example beaches, waterfalls etc 1.0 \n", + "8 nature for example beaches, waterfalls etc 2.0 \n", + "9 nature for example beaches, waterfalls etc 1.0 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
indexCarimbo de data/horaFollow ProfileFollow HashtagPeople or PlaceCaption important?Culture, Nature or FoodComment Freq
002020/11/16 3:36:24 PM GMTYesNoPlacesNonature for example beaches, waterfalls etc1.0
112020/11/16 3:36:40 PM GMTYesNoPeopleNocultural eg museums, statues etc1.0
222020/11/16 3:39:10 PM GMTYesNoPeopleNonature for example beaches, waterfalls etc2.0
352020/11/16 3:55:11 PM GMTYesYesPlacesYesnature for example beaches, waterfalls etc1.0
472020/11/16 4:09:03 PM GMTYesYesPlacesNonature for example beaches, waterfalls etc1.0
582020/11/16 4:16:30 PM GMTYesYesPlacesYescultural eg museums, statues etc4.0
692020/11/16 4:32:19 PM GMTYesNoPlacesNonature for example beaches, waterfalls etc1.0
7112020/11/16 5:40:26 PM GMTYesNoPeopleYesnature for example beaches, waterfalls etc1.0
8122020/11/16 5:42:24 PM GMTYesNoPlacesNonature for example beaches, waterfalls etc2.0
9132020/11/16 6:00:55 PM GMTYesNoPeopleNonature for example beaches, waterfalls etc1.0
\n
" + }, + "metadata": {}, + "execution_count": 196 + } + ], + "source": [ + "survey_pos.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [], + "source": [ + "#survey_pos['Comment Freq'] = survey_pos.astype({'Comment Freq': 'int32'})" + ] + }, + { + "source": [ + "### Follow Profile Column\n", + "\n", + "Yes == 1\n", + "No == 0\n", + "\n", + "### Follow Hashtag Column\n", + "\n", + "Yes == 1\n", + "No == 0\n", + "\n", + "### People or Place Column\n", + "\n", + "People == 1\n", + "Place == 0\n", + "\n", + "\n", + "### Caption important? Column\n", + "\n", + "Yes == 1\n", + "No == 0" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [], + "source": [ + "survey_pos['Follow Profile'] = survey_pos['Follow Profile'].apply(lambda x: 1 if x=='Yes' else 0)\n", + "survey_pos['Follow Hashtag'] = survey_pos['Follow Hashtag'].apply(lambda x: 1 if x=='Yes' else 0)\n", + "survey_pos['People or Place'] = survey_pos['People or Place'].apply(lambda x: 1 if x=='People' else 0)\n", + "survey_pos['Caption important?'] = survey_pos['Caption important?'].apply(lambda x: 1 if x=='Yes' else 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " index Carimbo de data/hora Follow Profile Follow Hashtag \\\n", + "0 0 2020/11/16 3:36:24 PM GMT 1 0 \n", + "1 1 2020/11/16 3:36:40 PM GMT 1 0 \n", + "2 2 2020/11/16 3:39:10 PM GMT 1 0 \n", + "3 5 2020/11/16 3:55:11 PM GMT 1 1 \n", + "4 7 2020/11/16 4:09:03 PM GMT 1 1 \n", + "5 8 2020/11/16 4:16:30 PM GMT 1 1 \n", + "6 9 2020/11/16 4:32:19 PM GMT 1 0 \n", + "7 11 2020/11/16 5:40:26 PM GMT 1 0 \n", + "8 12 2020/11/16 5:42:24 PM GMT 1 0 \n", + "9 13 2020/11/16 6:00:55 PM GMT 1 0 \n", + "\n", + " People or Place Caption important? \\\n", + "0 0 0 \n", + "1 1 0 \n", + "2 1 0 \n", + "3 0 1 \n", + "4 0 0 \n", + "5 0 1 \n", + "6 0 0 \n", + "7 1 1 \n", + "8 0 0 \n", + "9 1 0 \n", + "\n", + " Culture, Nature or Food Comment Freq \n", + "0 nature for example beaches, waterfalls etc 1.0 \n", + "1 cultural eg museums, statues etc 1.0 \n", + "2 nature for example beaches, waterfalls etc 2.0 \n", + "3 nature for example beaches, waterfalls etc 1.0 \n", + "4 nature for example beaches, waterfalls etc 1.0 \n", + "5 cultural eg museums, statues etc 4.0 \n", + "6 nature for example beaches, waterfalls etc 1.0 \n", + "7 nature for example beaches, waterfalls etc 1.0 \n", + "8 nature for example beaches, waterfalls etc 2.0 \n", + "9 nature for example beaches, waterfalls etc 1.0 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
indexCarimbo de data/horaFollow ProfileFollow HashtagPeople or PlaceCaption important?Culture, Nature or FoodComment Freq
002020/11/16 3:36:24 PM GMT1000nature for example beaches, waterfalls etc1.0
112020/11/16 3:36:40 PM GMT1010cultural eg museums, statues etc1.0
222020/11/16 3:39:10 PM GMT1010nature for example beaches, waterfalls etc2.0
352020/11/16 3:55:11 PM GMT1101nature for example beaches, waterfalls etc1.0
472020/11/16 4:09:03 PM GMT1100nature for example beaches, waterfalls etc1.0
582020/11/16 4:16:30 PM GMT1101cultural eg museums, statues etc4.0
692020/11/16 4:32:19 PM GMT1000nature for example beaches, waterfalls etc1.0
7112020/11/16 5:40:26 PM GMT1011nature for example beaches, waterfalls etc1.0
8122020/11/16 5:42:24 PM GMT1000nature for example beaches, waterfalls etc2.0
9132020/11/16 6:00:55 PM GMT1010nature for example beaches, waterfalls etc1.0
\n
" + }, + "metadata": {}, + "execution_count": 198 + } + ], + "source": [ + "survey_pos.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": {}, + "outputs": [], + "source": [ + "survey_pos.to_excel('survey_clean.xlsx')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file diff --git a/your-project/survey_clean.xlsx b/your-project/survey_clean.xlsx new file mode 100644 index 0000000..9dc0bdf Binary files /dev/null and b/your-project/survey_clean.xlsx differ diff --git a/your-project/survey_pop.xlsx b/your-project/survey_pop.xlsx new file mode 100644 index 0000000..2c263b3 Binary files /dev/null and b/your-project/survey_pop.xlsx differ