{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Finding the Best Markets to Advertise In\n", "\n", "In this project, we'll aim to find the two best markets to advertise our product in — we're working for an e-learning company that offers courses on programming. Most of our courses are on web and mobile development, but we also cover many other domains, like data science, game development, etc.\n", "\n", "# Understanding the Data\n", "\n", "To avoid spending money on organizing a survey, we'll first try to make use of existing data to determine whether we can reach any reliable result.\n", "\n", "One good candidate for our purpose is [freeCodeCamp's 2017 New Coder Survey](https://medium.freecodecamp.org/we-asked-20-000-people-who-they-are-and-how-theyre-learning-to-code-fff5d668969). [freeCodeCamp](https://www.freecodecamp.org/) is a free e-learning platform that offers courses on web development. Because they run [a popular Medium publication](https://medium.freecodecamp.org/) (over 400,000 followers), their survey attracted new coders with varying interests (not only web development), which is ideal for the purpose of our analysis.\n", "\n", "The survey data is publicly available in [this GitHub repository](https://github.com/freeCodeCamp/2017-new-coder-survey). Below, we'll do a quick exploration of the `2017-fCC-New-Coders-Survey-Data.csv` file stored in the `clean-data` folder of the repository we just mentioned." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2882, 136)\n" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AgeAttendedBootcampBootcampFinishBootcampLoanYesNoBootcampNameBootcampRecommendChildrenNumberCityPopulationCodeEventConferencesCodeEventDjangoGirlsCodeEventFCCCodeEventGameJamCodeEventGirlDevCodeEventHackathonsCodeEventMeetupCodeEventNodeSchoolCodeEventNoneCodeEventOtherCodeEventRailsBridgeCodeEventRailsGirlsCodeEventStartUpWkndCodeEventWkdBootcampsCodeEventWomenCodeCodeEventWorkshopsCommuteTimeCountryCitizenCountryLiveEmploymentFieldEmploymentFieldOtherEmploymentStatusEmploymentStatusOtherExpectedEarningFinanciallySupportingFirstDevJobGenderGenderOtherHasChildrenHasDebtHasFinancialDependentsHasHighSpdInternetHasHomeMortgageHasServedInMilitaryHasStudentDebtHomeMortgageOweHoursLearningID.xID.yIncomeIsEthnicMinorityIsReceiveDisabilitiesBenefitsIsSoftwareDevIsUnderEmployedJobApplyWhenJobInterestBackEndJobInterestDataEngrJobInterestDataSciJobInterestDevOpsJobInterestFrontEndJobInterestFullStackJobInterestGameDevJobInterestInfoSecJobInterestMobileJobInterestOtherJobInterestProjMngrJobInterestQAEngrJobInterestUXJobPrefJobRelocateYesNoJobRoleInterestJobWherePrefLanguageAtHomeMaritalStatusMoneyForLearningMonthsProgrammingNetworkIDPart1EndTimePart1StartTimePart2EndTimePart2StartTimePodcastChangeLogPodcastCodeNewbiePodcastCodePenPodcastDevTeaPodcastDotNETPodcastGiantRobotsPodcastJSAirPodcastJSJabberPodcastNonePodcastOtherPodcastProgThrowdownPodcastRubyRoguesPodcastSEDailyPodcastSERadioPodcastShopTalkPodcastTalkPythonPodcastTheWebAheadResourceCodecademyResourceCodeWarsResourceCourseraResourceCSSResourceEdXResourceEggheadResourceFCCResourceHackerRankResourceKAResourceLyndaResourceMDNResourceOdinProjResourceOtherResourcePluralSightResourceSkillcrushResourceSOResourceTreehouseResourceUdacityResourceUdemyResourceW3SSchoolDegreeSchoolMajorStudentDebtOweYouTubeCodeCourseYouTubeCodingTrainYouTubeCodingTut360YouTubeComputerphileYouTubeDerekBanasYouTubeDevTipsYouTubeEngineeredTruthYouTubeFCCYouTubeFunFunFunctionYouTubeGoogleDevYouTubeLearnCodeYouTubeLevelUpTutsYouTubeMITYouTubeMozillaHacksYouTubeOtherYouTubeSimplilearnYouTubeTheNewBoston
027.00.0NaNNaNNaNNaNNaNmore than 1 millionNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN15 to 29 minutesCanadaCanadasoftware development and ITNaNEmployed for wagesNaNNaNNaNNaNfemaleNaNNaN1.00.01.00.00.00.0NaN15.002d9465b21e8bd09374b0066fb2d5614eb78c1c3ac6cd9052aec557065070fbfNaNNaN0.00.00.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNstart your own businessNaNNaNNaNEnglishmarried or domestic partnership150.06.06f1fbc6b2b2017-03-09 00:36:222017-03-09 00:32:592017-03-09 00:59:462017-03-09 00:36:26NaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaN1.0NaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaN1.01.0some college credit, no degreeNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
134.00.0NaNNaNNaNNaNNaNless than 100,000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNUnited States of AmericaUnited States of AmericaNaNNaNNot working but looking for workNaN35000.0NaNNaNmaleNaNNaN1.00.01.00.00.01.0NaN10.05bfef9ecb211ec4f518cfc1d2a6f3e0c21db37adb60cdcafadfa7dca1b13b6b1NaN0.00.00.0NaNWithin 7 to 12 monthsNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNwork for a nonprofit1.0Full-Stack Web Developerin an office with other developersEnglishsingle, never married80.06.0f8f8be69102017-03-09 00:37:072017-03-09 00:33:262017-03-09 00:38:592017-03-09 00:37:10NaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaN1.0NaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaN1.01.0some college credit, no degreeNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
221.00.0NaNNaNNaNNaNNaNmore than 1 millionNaNNaNNaNNaNNaN1.0NaN1.0NaNNaNNaNNaNNaNNaNNaNNaN15 to 29 minutesUnited States of AmericaUnited States of Americasoftware development and ITNaNEmployed for wagesNaN70000.0NaNNaNmaleNaNNaN0.00.01.0NaN0.0NaNNaN25.014f1863afa9c7de488050b82eb3edd9621ba173828fbe9e27ccebaf4d5166a5513000.01.00.00.00.0Within 7 to 12 months1.0NaNNaN1.01.01.0NaNNaN1.0NaNNaNNaNNaNwork for a medium-sized company1.0Front-End Web Developer, Back-End Web Develo...no preferenceSpanishsingle, never married1000.05.02ed189768e2017-03-09 00:37:582017-03-09 00:33:532017-03-09 00:40:142017-03-09 00:38:021.0NaN1.0NaNNaNNaNNaNNaNNaNCodenewbieNaNNaNNaNNaN1.0NaNNaN1.0NaNNaN1.0NaNNaN1.0NaNNaNNaN1.0NaNNaNNaNNaNNaNNaN1.01.0NaNhigh school diploma or equivalent (GED)NaNNaNNaNNaN1.0NaN1.01.0NaNNaNNaNNaN1.01.0NaNNaNNaNNaNNaN
326.00.0NaNNaNNaNNaNNaNbetween 100,000 and 1 millionNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNI work from homeBrazilBrazilsoftware development and ITNaNEmployed for wagesNaN40000.00.0NaNmaleNaN0.01.01.01.01.00.00.040000.014.091756eb4dc280062a541c25a3d44cfb03be37b558f02daae93a6da10f83f0c7724000.00.00.00.01.0Within the next 6 months1.0NaNNaNNaN1.01.0NaNNaNNaNNaNNaNNaNNaNwork for a medium-sized companyNaNFront-End Web Developer, Full-Stack Web Deve...from homePortuguesemarried or domestic partnership0.05.0dbdc0664d12017-03-09 00:40:132017-03-09 00:37:452017-03-09 00:42:262017-03-09 00:40:18NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.01.0NaNNaNNaN1.0NaNNaNNaNNaN1.0NaNNaNNaNNaNsome college credit, no degreeNaNNaNNaNNaNNaNNaNNaN1.0NaN1.01.0NaNNaN1.0NaNNaNNaNNaNNaN
420.00.0NaNNaNNaNNaNNaNbetween 100,000 and 1 millionNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNPortugalPortugalNaNNaNNot working but looking for workNaN140000.0NaNNaNfemaleNaNNaN0.00.01.0NaN0.0NaNNaN10.0aa3f061a1949a90b27bef7411ecd193fd7c56bbf2c7b62096be9db010e86d96dNaN0.00.00.0NaNWithin 7 to 12 months1.0NaNNaNNaN1.01.0NaN1.01.0NaNNaNNaNNaNwork for a multinational corporation1.0Full-Stack Web Developer, Information Security...in an office with other developersPortuguesesingle, never married0.024.011b0f2d8a92017-03-09 00:42:452017-03-09 00:39:442017-03-09 00:45:422017-03-09 00:42:50NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNbachelor's degreeInformation TechnologyNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ " Age AttendedBootcamp BootcampFinish BootcampLoanYesNo BootcampName \\\n", "0 27.0 0.0 NaN NaN NaN \n", "1 34.0 0.0 NaN NaN NaN \n", "2 21.0 0.0 NaN NaN NaN \n", "3 26.0 0.0 NaN NaN NaN \n", "4 20.0 0.0 NaN NaN NaN \n", "\n", " BootcampRecommend ChildrenNumber CityPopulation \\\n", "0 NaN NaN more than 1 million \n", "1 NaN NaN less than 100,000 \n", "2 NaN NaN more than 1 million \n", "3 NaN NaN between 100,000 and 1 million \n", "4 NaN NaN between 100,000 and 1 million \n", "\n", " CodeEventConferences CodeEventDjangoGirls CodeEventFCC CodeEventGameJam \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " CodeEventGirlDev CodeEventHackathons CodeEventMeetup \\\n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN 1.0 NaN \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "\n", " CodeEventNodeSchool CodeEventNone CodeEventOther CodeEventRailsBridge \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 1.0 NaN NaN NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " CodeEventRailsGirls CodeEventStartUpWknd CodeEventWkdBootcamps \\\n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN NaN NaN \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "\n", " CodeEventWomenCode CodeEventWorkshops CommuteTime \\\n", "0 NaN NaN 15 to 29 minutes \n", "1 NaN NaN NaN \n", "2 NaN NaN 15 to 29 minutes \n", "3 NaN NaN I work from home \n", "4 NaN NaN NaN \n", "\n", " CountryCitizen CountryLive \\\n", "0 Canada Canada \n", "1 United States of America United States of America \n", "2 United States of America United States of America \n", "3 Brazil Brazil \n", "4 Portugal Portugal \n", "\n", " EmploymentField EmploymentFieldOther \\\n", "0 software development and IT NaN \n", "1 NaN NaN \n", "2 software development and IT NaN \n", "3 software development and IT NaN \n", "4 NaN NaN \n", "\n", " EmploymentStatus EmploymentStatusOther ExpectedEarning \\\n", "0 Employed for wages NaN NaN \n", "1 Not working but looking for work NaN 35000.0 \n", "2 Employed for wages NaN 70000.0 \n", "3 Employed for wages NaN 40000.0 \n", "4 Not working but looking for work NaN 140000.0 \n", "\n", " FinanciallySupporting FirstDevJob Gender GenderOther HasChildren \\\n", "0 NaN NaN female NaN NaN \n", "1 NaN NaN male NaN NaN \n", "2 NaN NaN male NaN NaN \n", "3 0.0 NaN male NaN 0.0 \n", "4 NaN NaN female NaN NaN \n", "\n", " HasDebt HasFinancialDependents HasHighSpdInternet HasHomeMortgage \\\n", "0 1.0 0.0 1.0 0.0 \n", "1 1.0 0.0 1.0 0.0 \n", "2 0.0 0.0 1.0 NaN \n", "3 1.0 1.0 1.0 1.0 \n", "4 0.0 0.0 1.0 NaN \n", "\n", " HasServedInMilitary HasStudentDebt HomeMortgageOwe HoursLearning \\\n", "0 0.0 0.0 NaN 15.0 \n", "1 0.0 1.0 NaN 10.0 \n", "2 0.0 NaN NaN 25.0 \n", "3 0.0 0.0 40000.0 14.0 \n", "4 0.0 NaN NaN 10.0 \n", "\n", " ID.x ID.y \\\n", "0 02d9465b21e8bd09374b0066fb2d5614 eb78c1c3ac6cd9052aec557065070fbf \n", "1 5bfef9ecb211ec4f518cfc1d2a6f3e0c 21db37adb60cdcafadfa7dca1b13b6b1 \n", "2 14f1863afa9c7de488050b82eb3edd96 21ba173828fbe9e27ccebaf4d5166a55 \n", "3 91756eb4dc280062a541c25a3d44cfb0 3be37b558f02daae93a6da10f83f0c77 \n", "4 aa3f061a1949a90b27bef7411ecd193f d7c56bbf2c7b62096be9db010e86d96d \n", "\n", " Income IsEthnicMinority IsReceiveDisabilitiesBenefits IsSoftwareDev \\\n", "0 NaN NaN 0.0 0.0 \n", "1 NaN 0.0 0.0 0.0 \n", "2 13000.0 1.0 0.0 0.0 \n", "3 24000.0 0.0 0.0 0.0 \n", "4 NaN 0.0 0.0 0.0 \n", "\n", " IsUnderEmployed JobApplyWhen JobInterestBackEnd \\\n", "0 0.0 NaN NaN \n", "1 NaN Within 7 to 12 months NaN \n", "2 0.0 Within 7 to 12 months 1.0 \n", "3 1.0 Within the next 6 months 1.0 \n", "4 NaN Within 7 to 12 months 1.0 \n", "\n", " JobInterestDataEngr JobInterestDataSci JobInterestDevOps \\\n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN NaN 1.0 \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "\n", " JobInterestFrontEnd JobInterestFullStack JobInterestGameDev \\\n", "0 NaN NaN NaN \n", "1 NaN 1.0 NaN \n", "2 1.0 1.0 NaN \n", "3 1.0 1.0 NaN \n", "4 1.0 1.0 NaN \n", "\n", " JobInterestInfoSec JobInterestMobile JobInterestOther \\\n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN 1.0 NaN \n", "3 NaN NaN NaN \n", "4 1.0 1.0 NaN \n", "\n", " JobInterestProjMngr JobInterestQAEngr JobInterestUX \\\n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN NaN NaN \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "\n", " JobPref JobRelocateYesNo \\\n", "0 start your own business NaN \n", "1 work for a nonprofit 1.0 \n", "2 work for a medium-sized company 1.0 \n", "3 work for a medium-sized company NaN \n", "4 work for a multinational corporation 1.0 \n", "\n", " JobRoleInterest \\\n", "0 NaN \n", "1 Full-Stack Web Developer \n", "2 Front-End Web Developer, Back-End Web Develo... \n", "3 Front-End Web Developer, Full-Stack Web Deve... \n", "4 Full-Stack Web Developer, Information Security... \n", "\n", " JobWherePref LanguageAtHome \\\n", "0 NaN English \n", "1 in an office with other developers English \n", "2 no preference Spanish \n", "3 from home Portuguese \n", "4 in an office with other developers Portuguese \n", "\n", " MaritalStatus MoneyForLearning MonthsProgramming \\\n", "0 married or domestic partnership 150.0 6.0 \n", "1 single, never married 80.0 6.0 \n", "2 single, never married 1000.0 5.0 \n", "3 married or domestic partnership 0.0 5.0 \n", "4 single, never married 0.0 24.0 \n", "\n", " NetworkID Part1EndTime Part1StartTime Part2EndTime \\\n", "0 6f1fbc6b2b 2017-03-09 00:36:22 2017-03-09 00:32:59 2017-03-09 00:59:46 \n", "1 f8f8be6910 2017-03-09 00:37:07 2017-03-09 00:33:26 2017-03-09 00:38:59 \n", "2 2ed189768e 2017-03-09 00:37:58 2017-03-09 00:33:53 2017-03-09 00:40:14 \n", "3 dbdc0664d1 2017-03-09 00:40:13 2017-03-09 00:37:45 2017-03-09 00:42:26 \n", "4 11b0f2d8a9 2017-03-09 00:42:45 2017-03-09 00:39:44 2017-03-09 00:45:42 \n", "\n", " Part2StartTime PodcastChangeLog PodcastCodeNewbie PodcastCodePen \\\n", "0 2017-03-09 00:36:26 NaN NaN NaN \n", "1 2017-03-09 00:37:10 NaN 1.0 NaN \n", "2 2017-03-09 00:38:02 1.0 NaN 1.0 \n", "3 2017-03-09 00:40:18 NaN NaN NaN \n", "4 2017-03-09 00:42:50 NaN NaN NaN \n", "\n", " PodcastDevTea PodcastDotNET PodcastGiantRobots PodcastJSAir \\\n", "0 1.0 NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " PodcastJSJabber PodcastNone PodcastOther PodcastProgThrowdown \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN NaN Codenewbie NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " PodcastRubyRogues PodcastSEDaily PodcastSERadio PodcastShopTalk \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN 1.0 \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " PodcastTalkPython PodcastTheWebAhead ResourceCodecademy \\\n", "0 NaN NaN 1.0 \n", "1 NaN NaN 1.0 \n", "2 NaN NaN 1.0 \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "\n", " ResourceCodeWars ResourceCoursera ResourceCSS ResourceEdX \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN 1.0 NaN \n", "2 NaN NaN 1.0 NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " ResourceEgghead ResourceFCC ResourceHackerRank ResourceKA \\\n", "0 NaN 1.0 NaN NaN \n", "1 NaN 1.0 NaN NaN \n", "2 NaN 1.0 NaN NaN \n", "3 1.0 1.0 NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " ResourceLynda ResourceMDN ResourceOdinProj ResourceOther \\\n", "0 NaN 1.0 NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN 1.0 NaN NaN \n", "3 NaN 1.0 NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " ResourcePluralSight ResourceSkillcrush ResourceSO ResourceTreehouse \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN 1.0 NaN \n", "2 NaN NaN NaN NaN \n", "3 NaN NaN 1.0 NaN \n", "4 NaN NaN 1.0 NaN \n", "\n", " ResourceUdacity ResourceUdemy ResourceW3S \\\n", "0 NaN 1.0 1.0 \n", "1 NaN 1.0 1.0 \n", "2 1.0 1.0 NaN \n", "3 NaN NaN NaN \n", "4 NaN NaN NaN \n", "\n", " SchoolDegree SchoolMajor \\\n", "0 some college credit, no degree NaN \n", "1 some college credit, no degree NaN \n", "2 high school diploma or equivalent (GED) NaN \n", "3 some college credit, no degree NaN \n", "4 bachelor's degree Information Technology \n", "\n", " StudentDebtOwe YouTubeCodeCourse YouTubeCodingTrain YouTubeCodingTut360 \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN 1.0 \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN \n", "\n", " YouTubeComputerphile YouTubeDerekBanas YouTubeDevTips \\\n", "0 NaN NaN NaN \n", "1 NaN NaN NaN \n", "2 NaN 1.0 1.0 \n", "3 NaN NaN 1.0 \n", "4 NaN NaN NaN \n", "\n", " YouTubeEngineeredTruth YouTubeFCC YouTubeFunFunFunction \\\n", "0 NaN NaN NaN \n", "1 NaN 1.0 NaN \n", "2 NaN NaN NaN \n", "3 NaN 1.0 1.0 \n", "4 NaN NaN NaN \n", "\n", " YouTubeGoogleDev YouTubeLearnCode YouTubeLevelUpTuts YouTubeMIT \\\n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN 1.0 1.0 NaN \n", "3 NaN NaN 1.0 NaN \n", "4 NaN NaN NaN NaN \n", "\n", " YouTubeMozillaHacks YouTubeOther YouTubeSimplilearn YouTubeTheNewBoston \n", "0 NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "fcc = pd.read_csv('2017-fCC-New-Coders-Survey-Data.csv')\n", "print(fcc.shape)\n", "\n", "pd.options.display.max_columns = 150 # to avoid truncated output \n", "fcc.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Checking for Sample Representativity\n", "\n", "As we mentioned in the introduction, most of our courses are on web and mobile development, but we also cover many other domains, like data science, game development, etc. For the purpose of our analysis, we want to answer questions about a population of new coders that are interested in the subjects we teach. We'd like to know:\n", "\n", "* Where are these new coders located.\n", "* What locations have the greatest densities of new coders.\n", "* How much money they're willing to spend on learning.\n", "\n", "So we first need to clarify whether the data set has the right categories of people for our purpose. The `JobRoleInterest` column describes for every participant the role(s) they'd be interested in working in. If a participant is interested in working in a certain domain, it means that they're also interested to learn about that domain. So let's take a look at the frequency distribution table of this column and determine whether the data we have is relevant." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Full-Stack Web Developer 12.015810\n", " Front-End Web Developer 4.426877\n", " Data Scientist 2.371542\n", " Mobile Developer 1.660079\n", "Back-End Web Developer 1.581028\n", "Full-Stack Web Developer, Front-End Web Developer 1.264822\n", " Front-End Web Developer, Full-Stack Web Developer 1.106719\n", " Product Manager 1.106719\n", "Data Engineer 1.027668\n", "Information Security 0.948617\n", " Front-End Web Developer, Back-End Web Developer, Full-Stack Web Developer 0.948617\n", "Back-End Web Developer, Full-Stack Web Developer 0.948617\n", " User Experience Designer, Front-End Web Developer 0.790514\n", "Back-End Web Developer, Full-Stack Web Developer, Front-End Web Developer 0.790514\n", " User Experience Designer 0.790514\n", "Game Developer 0.711462\n", "Back-End Web Developer, Front-End Web Developer, Full-Stack Web Developer 0.632411\n", "Full-Stack Web Developer, Back-End Web Developer 0.632411\n", " Front-End Web Developer, Full-Stack Web Developer, Back-End Web Developer 0.474308\n", " Front-End Web Developer, User Experience Designer 0.474308\n", "Full-Stack Web Developer, Mobile Developer 0.395257\n", "Data Engineer, Data Scientist 0.395257\n", "Back-End Web Developer, Front-End Web Developer 0.395257\n", " Front-End Web Developer, Full-Stack Web Developer, Mobile Developer 0.395257\n", " Data Scientist, Full-Stack Web Developer 0.395257\n", " DevOps / SysAdmin 0.395257\n", " Mobile Developer, Game Developer 0.316206\n", "Full-Stack Web Developer, Information Security 0.316206\n", " User Experience Designer, Full-Stack Web Developer, Front-End Web Developer 0.316206\n", "Full-Stack Web Developer, Front-End Web Developer, Back-End Web Developer 0.316206\n", " ... \n", " Product Manager, Game Developer, Front-End Web Developer, Mobile Developer, Data Scientist, Full-Stack Web Developer, Back-End Web Developer, Data Engineer, User Experience Designer 0.079051\n", "Back-End Web Developer, Full-Stack Web Developer, Mobile Developer, Game Developer, Front-End Web Developer 0.079051\n", "Game Developer, Mobile Developer, Back-End Web Developer, Full-Stack Web Developer, Front-End Web Developer, Information Security 0.079051\n", " Mobile Developer, User Experience Designer, Front-End Web Developer, Back-End Web Developer 0.079051\n", " Product Manager, Back-End Web Developer, DevOps / SysAdmin, Front-End Web Developer, Quality Assurance Engineer, Data Scientist, Information Security, Full-Stack Web Developer 0.079051\n", " Front-End Web Developer, DevOps / SysAdmin, User Experience Designer, Back-End Web Developer, Full-Stack Web Developer 0.079051\n", "Back-End Web Developer, Full-Stack Web Developer, Mobile Developer, DevOps / SysAdmin 0.079051\n", "Full-Stack Web Developer, Back-End Web Developer, Front-End Web Developer, Information Security, Data Engineer, Data Scientist 0.079051\n", "Information Security, Full-Stack Web Developer, User Experience Designer, Mobile Developer, Front-End Web Developer, Back-End Web Developer 0.079051\n", " Front-End Web Developer, User Experience Designer, Product Manager, Back-End Web Developer, Information Security, DevOps / SysAdmin, Full-Stack Web Developer, Data Engineer, Data Scientist 0.079051\n", "Game Developer, Data Engineer, Data Scientist, DevOps / SysAdmin, Information Security, Product Manager 0.079051\n", "Full-Stack Web Developer, Game Developer, Mobile Developer 0.079051\n", "Game Developer, Mobile Developer 0.079051\n", "Full-Stack Web Developer, Front-End Web Developer, Back-End Web Developer, Game Developer 0.079051\n", " Data Scientist, Data Engineer, Front-End Web Developer 0.079051\n", "Full-Stack Web Developer, Information Security, Front-End Web Developer, Game Developer, User Experience Designer, Back-End Web Developer 0.079051\n", "Data Engineer, User Experience Designer, Full-Stack Web Developer, Game Developer, Front-End Web Developer, Back-End Web Developer 0.079051\n", "Full-Stack Web Developer, Game Developer, Front-End Web Developer, Mobile Developer 0.079051\n", " Product Manager, Data Scientist, Data Engineer 0.079051\n", "Full-Stack Web Developer, DevOps / SysAdmin, Mobile Developer, Back-End Web Developer, Quality Assurance Engineer 0.079051\n", "Full-Stack Web Developer, Mobile Developer, Back-End Web Developer, DevOps / SysAdmin 0.079051\n", " Mobile Developer, Front-End Web Developer, Data Scientist, User Experience Designer, Full-Stack Web Developer 0.079051\n", "Back-End Web Developer, Data Engineer, Full-Stack Web Developer 0.079051\n", " Front-End Web Developer, Back-End Web Developer, Full-Stack Web Developer, User Experience Designer 0.079051\n", "Back-End Web Developer, Full-Stack Web Developer, Quality Assurance Engineer, Product Manager 0.079051\n", " Data Scientist, Data Engineer, User Experience Designer 0.079051\n", " User Experience Designer, Product Manager, Mobile Developer, Data Scientist, Full-Stack Web Developer, Back-End Web Developer 0.079051\n", " Data Scientist, Game Developer, Mobile Developer, User Experience Designer, Full-Stack Web Developer, Front-End Web Developer, Back-End Web Developer 0.079051\n", "Full-Stack Web Developer, Mobile Developer, Front-End Web Developer, Back-End Web Developer 0.079051\n", "Information Security, Data Scientist, Data Engineer, Mobile Developer, Full-Stack Web Developer, Game Developer 0.079051\n", "Name: JobRoleInterest, Length: 732, dtype: float64" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fcc['JobRoleInterest'].value_counts(normalize = True) * 100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The information in the table above is quite granular, but from a quick scan it looks like:\n", "\n", "* A lot of people are interested in web development (full-stack _web development_, front-end _web development_ and back-end _web development_).\n", "* A few people (2.4%) are interested in mobile development.\n", "* A few other people are interested in domains other than web and mobile development.\n", "\n", "It's also interesting to note that many people are interested in more than one subject. In the next code block, we'll:\n", "\n", "- Split each string in the `JobRoleInterest` to find the number of options for each participant.\n", " - We'll first drop the null values because we can't split `Nan` values.\n", "- Generate a frequency table for the variable describing the number of options." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1 27.272727\n", "2 12.569170\n", "3 18.023715\n", "4 16.521739\n", "5 12.332016\n", "6 6.719368\n", "7 3.320158\n", "8 1.185771\n", "9 1.106719\n", "10 0.474308\n", "11 0.237154\n", "12 0.237154\n", "Name: JobRoleInterest, dtype: float64" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interests_no_nulls = fcc['JobRoleInterest'].dropna()\n", "splitted_interests = interests_no_nulls.str.split(',')\n", "\n", "n_of_options = splitted_interests.apply(lambda x: len(x)) # x is a list of job options\n", "n_of_options.value_counts(normalize = True).sort_index() * 100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It turns out that only 27.3% of the participants have a clear idea about what programming niche they'd like to work in, while the vast majority of students have mixed interests. But given that we offer courses on various subjects, the fact that new coders have mixed interest might be actually good for us.\n", "\n", "The focus of our courses is on web and mobile development, so let's find out how many people from this survey chose at least one of these two options." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True 87.98419\n", "False 12.01581\n", "Name: JobRoleInterest, dtype: float64\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "web_or_mobile = interests_no_nulls.str.contains(\n", " 'Web Developer|Mobile Developer') # returns an array of booleans\n", "freq_table = web_or_mobile.value_counts(normalize = True) * 100\n", "print(freq_table)\n", "\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "freq_table.plot.bar()\n", "plt.title('Most Participants are Interested in \\nWeb or Mobile Development',\n", " y = 1.08) # y pads the title upward\n", "plt.ylabel('Percentage', fontsize = 12)\n", "plt.xticks([0,1],['Web or mobile\\ndevelopment', 'Other subject'],\n", " rotation = 0) # the initial xtick labels were True and False\n", "plt.ylim([0,100])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It turns out that most people in this survey (roughly 88%) are interested in either web or mobile development. These figures offer us a strong reason to consider this sample representative for our population of interest. We want to advertise our courses to people interested in all sorts of programming niches but mostly web and mobile development.\n", "\n", "Now we need to figure out what are the best markets to invest money in for advertising our courses. We'd like to know:\n", "\n", "* Where are these new coders located.\n", "* What are the locations with the greatest number of new coders.\n", "* How much money new coders are willing to spend on learning.\n", "\n", "# New Coders - Locations and Densities\n", "\n", "Let's begin with finding out where these new coders are located, and what are the densities (how many new coders there are) for each location. This should be a good start for finding out the best two markets to run our ads campaign in.\n", "\n", "The data set provides information about the location of each participant at a country level. We can think of each country as an individual market, so we can frame our goal as finding the two best countries to advertise in.\n", "\n", "We can start by examining the frequency distribution table of the `CountryLive` variable, which describes what country each participant lives in (not their origin country). We'll only consider those participants who answered what role(s) they're interested in, to make sure we work with a representative sample." ] }, { "cell_type": "code", "execution_count": 5, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Absolute frequencyPercentage
United States of America62050.000000
India1058.467742
United Kingdom645.161290
Canada493.951613
Germany262.096774
Poland241.935484
Brazil231.854839
Australia191.532258
Romania141.129032
Russia131.048387
Italy120.967742
France110.887097
Spain110.887097
Netherlands (Holland, Europe)100.806452
Mexico90.725806
Serbia90.725806
Belgium90.725806
New Zealand80.645161
Sweden80.645161
Turkey80.645161
Singapore70.564516
Bosnia & Herzegovina70.564516
Philippines70.564516
Argentina70.564516
Nigeria60.483871
Greece60.483871
Ukraine60.483871
Portugal60.483871
Ireland60.483871
China50.403226
.........
Latvia20.161290
Georgia20.161290
Pakistan20.161290
Iran20.161290
Vietnam20.161290
Sri Lanka20.161290
Hong Kong20.161290
Haiti10.080645
Virgin Islands (USA)10.080645
Slovakia10.080645
Algeria10.080645
Albania10.080645
Turkmenistan10.080645
Morocco10.080645
Botswana10.080645
Panama10.080645
Iceland10.080645
Honduras10.080645
Kyrgyzstan10.080645
Czech Republic10.080645
Bahrain10.080645
Guam10.080645
Tunisia10.080645
Ecuador10.080645
Jamaica10.080645
Senegal10.080645
Chile10.080645
Iraq10.080645
Slovenia10.080645
Cyprus10.080645
\n", "

89 rows × 2 columns

\n", "
" ], "text/plain": [ " Absolute frequency Percentage\n", "United States of America 620 50.000000\n", "India 105 8.467742\n", "United Kingdom 64 5.161290\n", "Canada 49 3.951613\n", "Germany 26 2.096774\n", "Poland 24 1.935484\n", "Brazil 23 1.854839\n", "Australia 19 1.532258\n", "Romania 14 1.129032\n", "Russia 13 1.048387\n", "Italy 12 0.967742\n", "France 11 0.887097\n", "Spain 11 0.887097\n", "Netherlands (Holland, Europe) 10 0.806452\n", "Mexico 9 0.725806\n", "Serbia 9 0.725806\n", "Belgium 9 0.725806\n", "New Zealand 8 0.645161\n", "Sweden 8 0.645161\n", "Turkey 8 0.645161\n", "Singapore 7 0.564516\n", "Bosnia & Herzegovina 7 0.564516\n", "Philippines 7 0.564516\n", "Argentina 7 0.564516\n", "Nigeria 6 0.483871\n", "Greece 6 0.483871\n", "Ukraine 6 0.483871\n", "Portugal 6 0.483871\n", "Ireland 6 0.483871\n", "China 5 0.403226\n", "... ... ...\n", "Latvia 2 0.161290\n", "Georgia 2 0.161290\n", "Pakistan 2 0.161290\n", "Iran 2 0.161290\n", "Vietnam 2 0.161290\n", "Sri Lanka 2 0.161290\n", "Hong Kong 2 0.161290\n", "Haiti 1 0.080645\n", "Virgin Islands (USA) 1 0.080645\n", "Slovakia 1 0.080645\n", "Algeria 1 0.080645\n", "Albania 1 0.080645\n", "Turkmenistan 1 0.080645\n", "Morocco 1 0.080645\n", "Botswana 1 0.080645\n", "Panama 1 0.080645\n", "Iceland 1 0.080645\n", "Honduras 1 0.080645\n", "Kyrgyzstan 1 0.080645\n", "Czech Republic 1 0.080645\n", "Bahrain 1 0.080645\n", "Guam 1 0.080645\n", "Tunisia 1 0.080645\n", "Ecuador 1 0.080645\n", "Jamaica 1 0.080645\n", "Senegal 1 0.080645\n", "Chile 1 0.080645\n", "Iraq 1 0.080645\n", "Slovenia 1 0.080645\n", "Cyprus 1 0.080645\n", "\n", "[89 rows x 2 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fcc_good = fcc[fcc['JobRoleInterest'].notnull()].copy()\n", "\n", "absolute_frequencies = fcc_good['CountryLive'].value_counts()\n", "relative_frequencies = fcc_good['CountryLive'].value_counts(normalize = True) * 100\n", "\n", "pd.DataFrame(data = {'Absolute frequency': absolute_frequencies, \n", " 'Percentage': relative_frequencies}\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "50% of our potential customers are located in the US, and this definitely seems like the most interesting market. India has the second customer density, but it's just 8.5%, which is not too far from the United Kingdom (5.2%) or Canada (4.0%).\n", "\n", "This is useful information, but we need to go more in depth than this and figure out how much money people are actually willing to spend on learning. Advertising within markets where people are only willing to learn for free is extremely unlikely to be profitable for us.\n", "\n", "# Spending Money for Learning\n", "\n", "The `MoneyForLearning` column describes in American dollars the amount of money spent by participants from the moment they started coding until the moment they completed the survey. Our company sells subscriptions at a price of \\$59 per month, and for this reason we're interested in finding out how much money each student spends per month.\n", "\n", "We'll narrow down our analysis to only four countries: the US, India, the United Kingdom, and Canada. We do this for two reasons:\n", "\n", "* These are the countries having the highest frequency in the frequency table above, which means we have a decent amount of data for each.\n", "* Our courses are written in English, and English is an official language in all these four countries. The more people know English, the better our chances to target the right people with our ads.\n", "\n", "Let's start with creating a new column that describes the amount of money a student has spent per month so far. To do that, we'll need to divide the `MoneyForLearning` column to the `MonthsProgramming` column. The problem is that some students answered that they have been learning to code for 0 months (it might be that they have just started). To avoid dividing by 0, we'll replace 0 with 1 in the `MonthsProgramming` column." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "122" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fcc_good['MonthsProgramming'].replace(0,1, inplace = True)\n", "fcc_good['money_per_month'] = fcc_good['MoneyForLearning'] / fcc_good['MonthsProgramming']\n", "fcc_good['money_per_month'].isnull().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's keep only the rows that don't have null values for the `money_per_month` column." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "fcc_good = fcc_good[fcc_good['money_per_month'].notnull()]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to group the data by country, and then measure the average amount money that students spend per month in each country. First, let's remove the rows having null values for the `CountryLive` column, and check out if we still have enough data for the four countries that interest us." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "United States of America 582\n", "India 92\n", "United Kingdom 58\n", "Canada 45\n", "Germany 23\n", "Name: CountryLive, dtype: int64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fcc_good = fcc_good[fcc_good['CountryLive'].notnull()]\n", "fcc_good['CountryLive'].value_counts().head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This should be enough, so let's compute the average value spent per month in each country by a student. We'll compute the average using the mean." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CountryLive\n", "United States of America 262.466988\n", "India 119.467205\n", "United Kingdom 18.921319\n", "Canada 35.808258\n", "Name: money_per_month, dtype: float64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "countries_mean = fcc_good.groupby('CountryLive').mean()\n", "countries_mean['money_per_month'][['United States of America',\n", " 'India', 'United Kingdom',\n", " 'Canada']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results for the United Kingdom and Canada are a bit surprising relative to the values we see for India. If we considered a few socio-economical metrics (like GDP per capita), we'd intuitively expect people in the UK and Canada to spend more on learning than people in India.\n", "\n", "It might be that we don't have have enough representative data for the United Kingdom and Canada, or we have some outliers (maybe coming from wrong survey answers) making the mean too large for India, or too low for the UK and Canada. Or it might be that the results are correct.\n", "\n", "# Dealing with Extreme Outliers\n", "\n", "Let's use box plots to visualize the distribution of the `money_per_month` variable for each country." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "only_4 = fcc_good[fcc_good['CountryLive'].str.contains(\n", " 'United States of America|India|United Kingdom|Canada')]\n", "sns.boxplot(y = 'money_per_month', x = 'CountryLive',\n", " data = only_4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's hard to see on the plot above if there's anything wrong with the data for the United Kingdom, India, or Canada, but we can see immediately that there's something really off for the US: at least one person spends roughly \\$50,000 each month for learning. This is not impossible, but it seems extremely unlikely, so we'll remove every value that goes over \\$10,000 per month." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "fcc_good = fcc_good[fcc_good['money_per_month'] < 10000]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's recompute the mean values and plot the box plots again." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CountryLive\n", "United States of America 176.860219\n", "India 119.467205\n", "United Kingdom 18.921319\n", "Canada 35.808258\n", "Name: money_per_month, dtype: float64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "countries_mean = fcc_good.groupby('CountryLive').mean()\n", "countries_mean['money_per_month'][['United States of America',\n", " 'India', 'United Kingdom',\n", " 'Canada']]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "only_4 = fcc_good[fcc_good['CountryLive'].str.contains(\n", " 'United States of America|India|United Kingdom|Canada')]\n", "sns.boxplot(y = 'money_per_month', x = 'CountryLive',\n", " data = only_4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see two extreme outliers for India, but it's unclear whether this is good data or not. Maybe these two persons attended several bootcamps, which tend to be very expensive. Let's examine these two data points to see if we can find anything relevant." ] }, { "cell_type": "code", "execution_count": 14, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AgeAttendedBootcampBootcampFinishBootcampLoanYesNoBootcampNameBootcampRecommendChildrenNumberCityPopulationCodeEventConferencesCodeEventDjangoGirlsCodeEventFCCCodeEventGameJamCodeEventGirlDevCodeEventHackathonsCodeEventMeetupCodeEventNodeSchoolCodeEventNoneCodeEventOtherCodeEventRailsBridgeCodeEventRailsGirlsCodeEventStartUpWkndCodeEventWkdBootcampsCodeEventWomenCodeCodeEventWorkshopsCommuteTimeCountryCitizenCountryLiveEmploymentFieldEmploymentFieldOtherEmploymentStatusEmploymentStatusOtherExpectedEarningFinanciallySupportingFirstDevJobGenderGenderOtherHasChildrenHasDebtHasFinancialDependentsHasHighSpdInternetHasHomeMortgageHasServedInMilitaryHasStudentDebtHomeMortgageOweHoursLearningID.xID.yIncomeIsEthnicMinorityIsReceiveDisabilitiesBenefitsIsSoftwareDevIsUnderEmployedJobApplyWhenJobInterestBackEndJobInterestDataEngrJobInterestDataSciJobInterestDevOpsJobInterestFrontEndJobInterestFullStackJobInterestGameDevJobInterestInfoSecJobInterestMobileJobInterestOtherJobInterestProjMngrJobInterestQAEngrJobInterestUXJobPrefJobRelocateYesNoJobRoleInterestJobWherePrefLanguageAtHomeMaritalStatusMoneyForLearningMonthsProgrammingNetworkIDPart1EndTimePart1StartTimePart2EndTimePart2StartTimePodcastChangeLogPodcastCodeNewbiePodcastCodePenPodcastDevTeaPodcastDotNETPodcastGiantRobotsPodcastJSAirPodcastJSJabberPodcastNonePodcastOtherPodcastProgThrowdownPodcastRubyRoguesPodcastSEDailyPodcastSERadioPodcastShopTalkPodcastTalkPythonPodcastTheWebAheadResourceCodecademyResourceCodeWarsResourceCourseraResourceCSSResourceEdXResourceEggheadResourceFCCResourceHackerRankResourceKAResourceLyndaResourceMDNResourceOdinProjResourceOtherResourcePluralSightResourceSkillcrushResourceSOResourceTreehouseResourceUdacityResourceUdemyResourceW3SSchoolDegreeSchoolMajorStudentDebtOweYouTubeCodeCourseYouTubeCodingTrainYouTubeCodingTut360YouTubeComputerphileYouTubeDerekBanasYouTubeDevTipsYouTubeEngineeredTruthYouTubeFCCYouTubeFunFunFunctionYouTubeGoogleDevYouTubeLearnCodeYouTubeLevelUpTutsYouTubeMITYouTubeMozillaHacksYouTubeOtherYouTubeSimplilearnYouTubeTheNewBostonmoney_per_month
172824.00.0NaNNaNNaNNaNNaNbetween 100,000 and 1 millionNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNIndiaIndiaNaNNaNA stay-at-home parent or homemakerNaN70000.0NaNNaNmaleNaNNaN0.00.01.0NaN0.0NaNNaN30.0d964ec629fd6d85a5bf27f7339f4fa6d950a8cf9cef1ae6a15da470e572b1b7aNaN0.00.00.0NaNWithin the next 6 months1.0NaNNaNNaN1.0NaNNaNNaN1.0NaN1.0NaN1.0work for a startup1.0User Experience Designer, Mobile Developer...in an office with other developersBengalisingle, never married20000.04.038d312a9902017-03-10 10:22:342017-03-10 10:17:422017-03-10 10:24:382017-03-10 10:22:40NaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.01.0bachelor's degreeComputer ProgrammingNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaN5000.000000
175520.00.0NaNNaNNaNNaNNaNmore than 1 millionNaNNaN1.0NaNNaN1.01.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNIndiaIndiaNaNNaNNot working and not looking for workNaN100000.0NaNNaNmaleNaNNaN0.00.01.0NaN0.0NaNNaN10.0811bf953ef546460f5436fcf2baa532d81e2a4cab0543e14746c4a20ffdae17cNaN0.00.00.0NaNI haven't decidedNaN1.0NaN1.01.01.0NaN1.0NaNNaNNaNNaNNaNwork for a multinational corporation1.0Information Security, Full-Stack Web Developer...no preferenceHindisingle, never married50000.015.04611a76b602017-03-10 10:48:312017-03-10 10:42:292017-03-10 10:51:372017-03-10 10:48:38NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaN1.01.01.0NaN1.0NaN1.0NaN1.01.0NaNNaNNaN1.0NaNNaNNaN1.01.01.0bachelor's degreeComputer ScienceNaNNaNNaN1.0NaNNaNNaNNaN1.0NaNNaN1.0NaN1.0NaNNaNNaNNaN3333.333333
\n", "
" ], "text/plain": [ " Age AttendedBootcamp BootcampFinish BootcampLoanYesNo BootcampName \\\n", "1728 24.0 0.0 NaN NaN NaN \n", "1755 20.0 0.0 NaN NaN NaN \n", "\n", " BootcampRecommend ChildrenNumber CityPopulation \\\n", "1728 NaN NaN between 100,000 and 1 million \n", "1755 NaN NaN more than 1 million \n", "\n", " CodeEventConferences CodeEventDjangoGirls CodeEventFCC \\\n", "1728 NaN NaN NaN \n", "1755 NaN NaN 1.0 \n", "\n", " CodeEventGameJam CodeEventGirlDev CodeEventHackathons \\\n", "1728 1.0 NaN NaN \n", "1755 NaN NaN 1.0 \n", "\n", " CodeEventMeetup CodeEventNodeSchool CodeEventNone CodeEventOther \\\n", "1728 NaN NaN NaN NaN \n", "1755 1.0 NaN NaN NaN \n", "\n", " CodeEventRailsBridge CodeEventRailsGirls CodeEventStartUpWknd \\\n", "1728 NaN NaN NaN \n", "1755 NaN NaN NaN \n", "\n", " CodeEventWkdBootcamps CodeEventWomenCode CodeEventWorkshops \\\n", "1728 NaN NaN NaN \n", "1755 NaN NaN NaN \n", "\n", " CommuteTime CountryCitizen CountryLive EmploymentField \\\n", "1728 NaN India India NaN \n", "1755 NaN India India NaN \n", "\n", " EmploymentFieldOther EmploymentStatus \\\n", "1728 NaN A stay-at-home parent or homemaker \n", "1755 NaN Not working and not looking for work \n", "\n", " EmploymentStatusOther ExpectedEarning FinanciallySupporting \\\n", "1728 NaN 70000.0 NaN \n", "1755 NaN 100000.0 NaN \n", "\n", " FirstDevJob Gender GenderOther HasChildren HasDebt \\\n", "1728 NaN male NaN NaN 0.0 \n", "1755 NaN male NaN NaN 0.0 \n", "\n", " HasFinancialDependents HasHighSpdInternet HasHomeMortgage \\\n", "1728 0.0 1.0 NaN \n", "1755 0.0 1.0 NaN \n", "\n", " HasServedInMilitary HasStudentDebt HomeMortgageOwe HoursLearning \\\n", "1728 0.0 NaN NaN 30.0 \n", "1755 0.0 NaN NaN 10.0 \n", "\n", " ID.x ID.y \\\n", "1728 d964ec629fd6d85a5bf27f7339f4fa6d 950a8cf9cef1ae6a15da470e572b1b7a \n", "1755 811bf953ef546460f5436fcf2baa532d 81e2a4cab0543e14746c4a20ffdae17c \n", "\n", " Income IsEthnicMinority IsReceiveDisabilitiesBenefits IsSoftwareDev \\\n", "1728 NaN 0.0 0.0 0.0 \n", "1755 NaN 0.0 0.0 0.0 \n", "\n", " IsUnderEmployed JobApplyWhen JobInterestBackEnd \\\n", "1728 NaN Within the next 6 months 1.0 \n", "1755 NaN I haven't decided NaN \n", "\n", " JobInterestDataEngr JobInterestDataSci JobInterestDevOps \\\n", "1728 NaN NaN NaN \n", "1755 1.0 NaN 1.0 \n", "\n", " JobInterestFrontEnd JobInterestFullStack JobInterestGameDev \\\n", "1728 1.0 NaN NaN \n", "1755 1.0 1.0 NaN \n", "\n", " JobInterestInfoSec JobInterestMobile JobInterestOther \\\n", "1728 NaN 1.0 NaN \n", "1755 1.0 NaN NaN \n", "\n", " JobInterestProjMngr JobInterestQAEngr JobInterestUX \\\n", "1728 1.0 NaN 1.0 \n", "1755 NaN NaN NaN \n", "\n", " JobPref JobRelocateYesNo \\\n", "1728 work for a startup 1.0 \n", "1755 work for a multinational corporation 1.0 \n", "\n", " JobRoleInterest \\\n", "1728 User Experience Designer, Mobile Developer... \n", "1755 Information Security, Full-Stack Web Developer... \n", "\n", " JobWherePref LanguageAtHome \\\n", "1728 in an office with other developers Bengali \n", "1755 no preference Hindi \n", "\n", " MaritalStatus MoneyForLearning MonthsProgramming NetworkID \\\n", "1728 single, never married 20000.0 4.0 38d312a990 \n", "1755 single, never married 50000.0 15.0 4611a76b60 \n", "\n", " Part1EndTime Part1StartTime Part2EndTime \\\n", "1728 2017-03-10 10:22:34 2017-03-10 10:17:42 2017-03-10 10:24:38 \n", "1755 2017-03-10 10:48:31 2017-03-10 10:42:29 2017-03-10 10:51:37 \n", "\n", " Part2StartTime PodcastChangeLog PodcastCodeNewbie \\\n", "1728 2017-03-10 10:22:40 NaN NaN \n", "1755 2017-03-10 10:48:38 NaN NaN \n", "\n", " PodcastCodePen PodcastDevTea PodcastDotNET PodcastGiantRobots \\\n", "1728 NaN NaN NaN NaN \n", "1755 NaN NaN NaN NaN \n", "\n", " PodcastJSAir PodcastJSJabber PodcastNone PodcastOther \\\n", "1728 1.0 NaN NaN NaN \n", "1755 NaN NaN NaN NaN \n", "\n", " PodcastProgThrowdown PodcastRubyRogues PodcastSEDaily PodcastSERadio \\\n", "1728 NaN NaN NaN NaN \n", "1755 NaN NaN 1.0 NaN \n", "\n", " PodcastShopTalk PodcastTalkPython PodcastTheWebAhead \\\n", "1728 NaN NaN NaN \n", "1755 NaN NaN NaN \n", "\n", " ResourceCodecademy ResourceCodeWars ResourceCoursera ResourceCSS \\\n", "1728 1.0 NaN NaN NaN \n", "1755 1.0 1.0 1.0 NaN \n", "\n", " ResourceEdX ResourceEgghead ResourceFCC ResourceHackerRank \\\n", "1728 NaN NaN NaN NaN \n", "1755 1.0 NaN 1.0 NaN \n", "\n", " ResourceKA ResourceLynda ResourceMDN ResourceOdinProj ResourceOther \\\n", "1728 NaN NaN NaN NaN NaN \n", "1755 1.0 1.0 NaN NaN NaN \n", "\n", " ResourcePluralSight ResourceSkillcrush ResourceSO ResourceTreehouse \\\n", "1728 NaN NaN NaN NaN \n", "1755 1.0 NaN NaN NaN \n", "\n", " ResourceUdacity ResourceUdemy ResourceW3S SchoolDegree \\\n", "1728 NaN 1.0 1.0 bachelor's degree \n", "1755 1.0 1.0 1.0 bachelor's degree \n", "\n", " SchoolMajor StudentDebtOwe YouTubeCodeCourse \\\n", "1728 Computer Programming NaN NaN \n", "1755 Computer Science NaN NaN \n", "\n", " YouTubeCodingTrain YouTubeCodingTut360 YouTubeComputerphile \\\n", "1728 NaN NaN NaN \n", "1755 NaN 1.0 NaN \n", "\n", " YouTubeDerekBanas YouTubeDevTips YouTubeEngineeredTruth YouTubeFCC \\\n", "1728 NaN NaN NaN 1.0 \n", "1755 NaN NaN NaN 1.0 \n", "\n", " YouTubeFunFunFunction YouTubeGoogleDev YouTubeLearnCode \\\n", "1728 NaN NaN NaN \n", "1755 NaN NaN 1.0 \n", "\n", " YouTubeLevelUpTuts YouTubeMIT YouTubeMozillaHacks YouTubeOther \\\n", "1728 NaN NaN NaN NaN \n", "1755 NaN 1.0 NaN NaN \n", "\n", " YouTubeSimplilearn YouTubeTheNewBoston money_per_month \n", "1728 NaN NaN 5000.000000 \n", "1755 NaN NaN 3333.333333 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "only_4[(only_4['CountryLive'] == 'India') & (only_4['money_per_month'] > 3000)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It seems that neither participant attended a bootcamp. Overall, it's really hard to figure out from the data whether these two persons really spent that much money with learning. The actual question of the survey was _\"Aside from university tuition, about how much money have you spent on learning to code so far (in US dollars)?\"_, so they might have misunderstood and thought university tuition is included. It seems safer to remove these two rows." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "only_4 = only_4.drop([1728,1755]) # using the row labels from above" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking back at the box plot above, we can also see two extreme outliers for the US. Let's examine these participants more in depth." ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AgeAttendedBootcampBootcampFinishBootcampLoanYesNoBootcampNameBootcampRecommendChildrenNumberCityPopulationCodeEventConferencesCodeEventDjangoGirlsCodeEventFCCCodeEventGameJamCodeEventGirlDevCodeEventHackathonsCodeEventMeetupCodeEventNodeSchoolCodeEventNoneCodeEventOtherCodeEventRailsBridgeCodeEventRailsGirlsCodeEventStartUpWkndCodeEventWkdBootcampsCodeEventWomenCodeCodeEventWorkshopsCommuteTimeCountryCitizenCountryLiveEmploymentFieldEmploymentFieldOtherEmploymentStatusEmploymentStatusOtherExpectedEarningFinanciallySupportingFirstDevJobGenderGenderOtherHasChildrenHasDebtHasFinancialDependentsHasHighSpdInternetHasHomeMortgageHasServedInMilitaryHasStudentDebtHomeMortgageOweHoursLearningID.xID.yIncomeIsEthnicMinorityIsReceiveDisabilitiesBenefitsIsSoftwareDevIsUnderEmployedJobApplyWhenJobInterestBackEndJobInterestDataEngrJobInterestDataSciJobInterestDevOpsJobInterestFrontEndJobInterestFullStackJobInterestGameDevJobInterestInfoSecJobInterestMobileJobInterestOtherJobInterestProjMngrJobInterestQAEngrJobInterestUXJobPrefJobRelocateYesNoJobRoleInterestJobWherePrefLanguageAtHomeMaritalStatusMoneyForLearningMonthsProgrammingNetworkIDPart1EndTimePart1StartTimePart2EndTimePart2StartTimePodcastChangeLogPodcastCodeNewbiePodcastCodePenPodcastDevTeaPodcastDotNETPodcastGiantRobotsPodcastJSAirPodcastJSJabberPodcastNonePodcastOtherPodcastProgThrowdownPodcastRubyRoguesPodcastSEDailyPodcastSERadioPodcastShopTalkPodcastTalkPythonPodcastTheWebAheadResourceCodecademyResourceCodeWarsResourceCourseraResourceCSSResourceEdXResourceEggheadResourceFCCResourceHackerRankResourceKAResourceLyndaResourceMDNResourceOdinProjResourceOtherResourcePluralSightResourceSkillcrushResourceSOResourceTreehouseResourceUdacityResourceUdemyResourceW3SSchoolDegreeSchoolMajorStudentDebtOweYouTubeCodeCourseYouTubeCodingTrainYouTubeCodingTut360YouTubeComputerphileYouTubeDerekBanasYouTubeDevTipsYouTubeEngineeredTruthYouTubeFCCYouTubeFunFunFunctionYouTubeGoogleDevYouTubeLearnCodeYouTubeLevelUpTutsYouTubeMITYouTubeMozillaHacksYouTubeOtherYouTubeSimplilearnYouTubeTheNewBostonmoney_per_month
71826.01.00.00.0The Coding Boot Camp at UCLA Extension1.0NaNmore than 1 million1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN15 to 29 minutesUnited States of AmericaUnited States of Americaarchitecture or physical engineeringNaNEmployed for wagesNaN50000.0NaNNaNmaleNaNNaN0.00.00.0NaN0.0NaNNaN35.0796ae14c2acdee36eebc250a252abdafd9e44d73057fa5d322a071adc744bf0744500.00.00.00.01.0Within the next 6 months1.0NaNNaNNaN1.01.0NaNNaN1.0NaNNaNNaN1.0work for a startup1.0User Experience Designer, Full-Stack Web Dev...in an office with other developersEnglishsingle, never married8000.01.050dab3f7162017-03-09 21:26:352017-03-09 21:21:582017-03-09 21:29:102017-03-09 21:26:39NaN1.01.0NaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaN1.0NaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNbachelor's degreeArchitectureNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaN8000.0
122232.01.00.00.0The Iron Yard1.0NaNbetween 100,000 and 1 millionNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNUnited States of AmericaUnited States of AmericaNaNNaNNot working and not looking for workNaN50000.0NaNNaNfemaleNaNNaN1.00.01.00.00.00.0NaN50.0bfabebb4293ac002d26a1397d00c7443590f0be70e80f1daf5a23eb7f4a72a3dNaN0.00.00.0NaNWithin the next 6 monthsNaNNaNNaNNaN1.0NaNNaNNaN1.0NaNNaNNaN1.0work for a nonprofit1.0Front-End Web Developer, Mobile Developer,...in an office with other developersEnglishsingle, never married13000.02.0e512c4bdd02017-03-10 02:14:112017-03-10 02:10:072017-03-10 02:15:322017-03-10 02:14:16NaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaN1.0NaN1.01.0NaNNaNNaN1.0NaNNaN1.01.01.01.01.01.0NaNbachelor's degreeAnthropologyNaNNaN1.0NaNNaNNaN1.0NaN1.0NaNNaN1.0NaNNaNNaNNaNNaNNaN6500.0
\n", "
" ], "text/plain": [ " Age AttendedBootcamp BootcampFinish BootcampLoanYesNo \\\n", "718 26.0 1.0 0.0 0.0 \n", "1222 32.0 1.0 0.0 0.0 \n", "\n", " BootcampName BootcampRecommend \\\n", "718 The Coding Boot Camp at UCLA Extension 1.0 \n", "1222 The Iron Yard 1.0 \n", "\n", " ChildrenNumber CityPopulation CodeEventConferences \\\n", "718 NaN more than 1 million 1.0 \n", "1222 NaN between 100,000 and 1 million NaN \n", "\n", " CodeEventDjangoGirls CodeEventFCC CodeEventGameJam CodeEventGirlDev \\\n", "718 NaN NaN NaN NaN \n", "1222 NaN NaN NaN NaN \n", "\n", " CodeEventHackathons CodeEventMeetup CodeEventNodeSchool \\\n", "718 NaN NaN NaN \n", "1222 NaN 1.0 NaN \n", "\n", " CodeEventNone CodeEventOther CodeEventRailsBridge \\\n", "718 NaN NaN NaN \n", "1222 NaN NaN NaN \n", "\n", " CodeEventRailsGirls CodeEventStartUpWknd CodeEventWkdBootcamps \\\n", "718 NaN NaN NaN \n", "1222 NaN NaN NaN \n", "\n", " CodeEventWomenCode CodeEventWorkshops CommuteTime \\\n", "718 NaN NaN 15 to 29 minutes \n", "1222 NaN NaN NaN \n", "\n", " CountryCitizen CountryLive \\\n", "718 United States of America United States of America \n", "1222 United States of America United States of America \n", "\n", " EmploymentField EmploymentFieldOther \\\n", "718 architecture or physical engineering NaN \n", "1222 NaN NaN \n", "\n", " EmploymentStatus EmploymentStatusOther \\\n", "718 Employed for wages NaN \n", "1222 Not working and not looking for work NaN \n", "\n", " ExpectedEarning FinanciallySupporting FirstDevJob Gender GenderOther \\\n", "718 50000.0 NaN NaN male NaN \n", "1222 50000.0 NaN NaN female NaN \n", "\n", " HasChildren HasDebt HasFinancialDependents HasHighSpdInternet \\\n", "718 NaN 0.0 0.0 0.0 \n", "1222 NaN 1.0 0.0 1.0 \n", "\n", " HasHomeMortgage HasServedInMilitary HasStudentDebt HomeMortgageOwe \\\n", "718 NaN 0.0 NaN NaN \n", "1222 0.0 0.0 0.0 NaN \n", "\n", " HoursLearning ID.x \\\n", "718 35.0 796ae14c2acdee36eebc250a252abdaf \n", "1222 50.0 bfabebb4293ac002d26a1397d00c7443 \n", "\n", " ID.y Income IsEthnicMinority \\\n", "718 d9e44d73057fa5d322a071adc744bf07 44500.0 0.0 \n", "1222 590f0be70e80f1daf5a23eb7f4a72a3d NaN 0.0 \n", "\n", " IsReceiveDisabilitiesBenefits IsSoftwareDev IsUnderEmployed \\\n", "718 0.0 0.0 1.0 \n", "1222 0.0 0.0 NaN \n", "\n", " JobApplyWhen JobInterestBackEnd JobInterestDataEngr \\\n", "718 Within the next 6 months 1.0 NaN \n", "1222 Within the next 6 months NaN NaN \n", "\n", " JobInterestDataSci JobInterestDevOps JobInterestFrontEnd \\\n", "718 NaN NaN 1.0 \n", "1222 NaN NaN 1.0 \n", "\n", " JobInterestFullStack JobInterestGameDev JobInterestInfoSec \\\n", "718 1.0 NaN NaN \n", "1222 NaN NaN NaN \n", "\n", " JobInterestMobile JobInterestOther JobInterestProjMngr \\\n", "718 1.0 NaN NaN \n", "1222 1.0 NaN NaN \n", "\n", " JobInterestQAEngr JobInterestUX JobPref \\\n", "718 NaN 1.0 work for a startup \n", "1222 NaN 1.0 work for a nonprofit \n", "\n", " JobRelocateYesNo JobRoleInterest \\\n", "718 1.0 User Experience Designer, Full-Stack Web Dev... \n", "1222 1.0 Front-End Web Developer, Mobile Developer,... \n", "\n", " JobWherePref LanguageAtHome \\\n", "718 in an office with other developers English \n", "1222 in an office with other developers English \n", "\n", " MaritalStatus MoneyForLearning MonthsProgramming NetworkID \\\n", "718 single, never married 8000.0 1.0 50dab3f716 \n", "1222 single, never married 13000.0 2.0 e512c4bdd0 \n", "\n", " Part1EndTime Part1StartTime Part2EndTime \\\n", "718 2017-03-09 21:26:35 2017-03-09 21:21:58 2017-03-09 21:29:10 \n", "1222 2017-03-10 02:14:11 2017-03-10 02:10:07 2017-03-10 02:15:32 \n", "\n", " Part2StartTime PodcastChangeLog PodcastCodeNewbie \\\n", "718 2017-03-09 21:26:39 NaN 1.0 \n", "1222 2017-03-10 02:14:16 NaN NaN \n", "\n", " PodcastCodePen PodcastDevTea PodcastDotNET PodcastGiantRobots \\\n", "718 1.0 NaN NaN NaN \n", "1222 NaN NaN NaN NaN \n", "\n", " PodcastJSAir PodcastJSJabber PodcastNone PodcastOther \\\n", "718 NaN NaN NaN NaN \n", "1222 NaN 1.0 NaN NaN \n", "\n", " PodcastProgThrowdown PodcastRubyRogues PodcastSEDaily PodcastSERadio \\\n", "718 NaN NaN 1.0 NaN \n", "1222 NaN NaN NaN NaN \n", "\n", " PodcastShopTalk PodcastTalkPython PodcastTheWebAhead \\\n", "718 NaN NaN NaN \n", "1222 NaN NaN NaN \n", "\n", " ResourceCodecademy ResourceCodeWars ResourceCoursera ResourceCSS \\\n", "718 NaN 1.0 NaN NaN \n", "1222 1.0 NaN NaN 1.0 \n", "\n", " ResourceEdX ResourceEgghead ResourceFCC ResourceHackerRank \\\n", "718 NaN NaN 1.0 NaN \n", "1222 NaN 1.0 1.0 NaN \n", "\n", " ResourceKA ResourceLynda ResourceMDN ResourceOdinProj ResourceOther \\\n", "718 NaN NaN NaN NaN NaN \n", "1222 NaN NaN 1.0 NaN NaN \n", "\n", " ResourcePluralSight ResourceSkillcrush ResourceSO ResourceTreehouse \\\n", "718 NaN NaN NaN NaN \n", "1222 1.0 1.0 1.0 1.0 \n", "\n", " ResourceUdacity ResourceUdemy ResourceW3S SchoolDegree \\\n", "718 NaN NaN NaN bachelor's degree \n", "1222 1.0 1.0 NaN bachelor's degree \n", "\n", " SchoolMajor StudentDebtOwe YouTubeCodeCourse YouTubeCodingTrain \\\n", "718 Architecture NaN NaN NaN \n", "1222 Anthropology NaN NaN 1.0 \n", "\n", " YouTubeCodingTut360 YouTubeComputerphile YouTubeDerekBanas \\\n", "718 NaN NaN NaN \n", "1222 NaN NaN NaN \n", "\n", " YouTubeDevTips YouTubeEngineeredTruth YouTubeFCC \\\n", "718 NaN NaN 1.0 \n", "1222 1.0 NaN 1.0 \n", "\n", " YouTubeFunFunFunction YouTubeGoogleDev YouTubeLearnCode \\\n", "718 NaN NaN NaN \n", "1222 NaN NaN 1.0 \n", "\n", " YouTubeLevelUpTuts YouTubeMIT YouTubeMozillaHacks YouTubeOther \\\n", "718 NaN NaN NaN NaN \n", "1222 NaN NaN NaN NaN \n", "\n", " YouTubeSimplilearn YouTubeTheNewBoston money_per_month \n", "718 NaN NaN 8000.0 \n", "1222 NaN NaN 6500.0 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "only_4[\n", " (only_4['CountryLive'] == 'United States of America') & \n", " (only_4['money_per_month'] > 6000)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Both persons attended bootcamps, but it seems that they had been programming for no more than two months when they completed the survey. They most likely paid a large sum of money for a bootcamp that was going to last for several months, so the money spent per month it's unrealistic and should be significantly lower (because they probably didn't spend anything for the next couple of months after the survey). Consequently, we'll remove these rows. " ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "only_4 = only_4.drop([718,1222]) # using the row labels from above" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's recompute the mean values and generate the final box plots." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CountryLive\n", "Canada 35.808258\n", "India 29.529439\n", "United Kingdom 18.921319\n", "United States of America 152.427957\n", "Name: money_per_month, dtype: float64" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "only_4.groupby('CountryLive').mean()['money_per_month']" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbMAAAEGCAYAAADv6ntBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvFvnyVgAAIABJREFUeJzt3XucXHV9//HXe7OAMWjIIio3CdaggaLxxh02WRSitgpIN1CuLa3lBxRqlarRCiLlJy0/pV4oXhEQISsIRkRu2WQpljuEcIkYEAgRVOiEVAJSNvv5/XG+m8xu9jJns7MzZ+b9fDzmsef7PZf5zJnd/cz3nO98v4oIzMzMiqyl1gGYmZltKiczMzMrPCczMzMrPCczMzMrPCczMzMrvNZaBzDe1qxZ4+6ZZmYNburUqSovu2VmZmaF52RmZmaF52RmZmaF52RmZmaF52RmZmaF52RmZmaF52RWR0qlEvPnz2f16tW1DsXMrFCczOpIV1cXy5cvZ8GCBbUOxcysUJzM6kSpVKK7u5uIoLu7260zM7McnMzqRFdXF319fQD09fW5dWZmloOTWZ3o6emht7cXgN7eXnp6emockZlZcTiZ1Yn29nZaW7OhMltbW2lvb69xRGZmxeFkVic6OztpacnejpaWFubNm1fjiMzMisPJrE60tbXR0dGBJDo6Opg2bVqtQzIzK4yGmwKmyDo7O1m5cqVbZWZmOSmisab/8nxmZmaNz/OZmZlZw3EyqyMezsrMbGwmNJlJmiTpPknXpvLOku6QtELSAkmbp/otUvnRtH562TE+k+ofkXTwRMZfbR7OysxsbCa6ZXYasLysfC7wlYiYAawGTkj1JwCrI+ItwFfSdkjaFTgC2A2YC1wgadIExV5VHs7KzGzsJiyZSdoB+BDwnVQW0AFcmTa5GDgkLX8klUnrD0zbfwS4IiJejojHgUeBPSbmFVSXh7MyMxu7ieyafz7wT8BrUnlr4PmI6E3lVcD2aXl74CmAiOiVtCZtvz1we9kxy/fZyIoVK8Yt+GpbvHjxgOGsFi9ezIEHHljjqMzM6seMGTOGXTchyUzSnwG/j4h7JM3urx5i0xhl3Uj7bGSkF15v5syZw80330xvby+tra3MmTOnUPGbmdXSRF1m3Bf4sKQngCvILi+eD2wlqT+h7gA8nZZXATsCpPVTgVJ5/RD7FJqHszIzG7sJSWYR8ZmI2CEippN14OiOiKOAxcDhabPjgJ+k5YWpTFrfHdm3uxcCR6TejjsDM4A7J+I1VJuHszIzG7taD2f1KeAKSWcD9wHfTfXfBS6V9ChZi+wIgIh4SFIX8DDQC5wcEesmPuzq8HBWZmZj4+GszMyscDyclZmZNRwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnMzMzKzwnszpSKpWYP38+q1evrnUoZmaF4mRWR7q6uli+fDkLFiyodShmZoXiZFYnSqUS3d3dRATd3d1unZmZ5eBkVie6urro6+sDoK+vz60zM7McciczSa+X9ObyRzUCazY9PT309vYC0NvbS09PT40jMjMrjoqTmaS5kn4DPAM8WvZYUaXYmkp7ezutra0AtLa20t7eXuOIzMyKI0/L7BvAF4EtI6Kl7DGpSrE1lc7OTlpasrejpaWFefPm1TgiM7PiyJPMpgHfjIiXqhVMM2tra6OjowNJdHR0MG3atFqHZGZWGHmS2XeBv6pWIJa1zmbOnOlWmZlZToqI4VdK/wn0byBgT+AJ4Lfl20XEAVWKL7c1a9YM/4LMzKwhTJ06VeXl1lG2/84oZTMzs5obMZlFxMX9y5L2jIg7Bm8jaY9qBGZmZlapPPfMbhqm/vrRdpT0Kkl3Srpf0kOSvpDqd5Z0h6QVkhZI2jzVb5HKj6b108uO9ZlU/4ikg3PEb2ZmDWrUZCapRdKkbFFK5f7HDKC3gud5GeiIiHcAs4C5kvYCzgW+EhEzgNXACWn7E4DVEfEW4CtpOyTtChwB7AbMBS5IsZmZWROrpGXWC/wv8Oq0/ErZ42HggtEOEJkXUnGz9AigA7gy1V8MHJKWP5LKpPUHSlKqvyIiXo6Ix8m+tO3LnGZmTW60DiAAO5P1ZOwBynstBvBspd87Sy2oe4C3kH0B+zHg+Yjob9mtArZPy9sDTwFERK+kNcDWqf72ssOW72NmZk1q1GQWEU+mxZ025YkiYh0wS9JWwNXAzKE2Sz81zLrh6oe0YoVH2jIzaxQzZswYdl0lLTMAJLUBnyS757Vl+bo83zOLiOclLQH2AraS1JpaZzsAT6fNVgE7AqsktQJTgVJZfb/yfTYy0gs3M7PGUXEyA34IbAF0AS/meRJJ2wCvpEQ2GXgfWaeOxcDhwBXAccBP0i4LU/m2tL47IkLSQuCHkr4MbAfMAO7ME4uZmTWePMlsH2CbiHh5DM+zLXBxum/WAnRFxLWSHgaukHQ2cB/ZkFmkn5dKepSsRXYEQEQ8JKmLrONJL3ByunzZEEqlEueddx6nn366x2Y0M8thxOGsBmwo3QocFxGPVTekTVPk4awuvPBCbrjhBg4++GBOPPHEWodjZla38g5nVa4buF7SRWw8NuP3xiG2plYqleju7iYi6O7uZt68eW6dmZlVKM8IIPuTdcB4P3BM2ePoKsTVdLq6uujr6wOgr6+PBQsW1DgiM7PiqPgyY1EU9TLjkUceyUsvbfjK3uTJk7n88strGJGZWf0afJkxT8sMSdMkHZvGRzxWkq+DjZP29nZaW7Orvq2trbS3t9c4IjOz4qg4mUnam2zUjhOBtwN/BzyW6m0TdXZ20tKSvR0tLS2eoNPMLIc8LbPzgZMiYp+IODIi9gX+D/DV6oTWXNra2ujo6EASHR0d7vxhZpZDnmS2C9kXpstdSTbWoo2Dzs5OZs6c6VaZmVlOeb5ndidwfkT8sKzuCOCTEfGeKsWXW1E7gJiZWeU25Xtm/wBcK+lU4ElgOtlwUn82btGZmZmNQa6u+an34ofIxkV8GrguIkpVim1M3DIzM2t8g1tm/p6ZmZkVzpgvM0p6E3AG8E42ngJml3GJzszMbAzy3DP7EfBL4PNARbNLm5mZTYQ8yextwN4R0VetYMzMzMYiz/fMfgp4jCUzM6s7eVpmpwL/Jekx4HflKyLir8c1KjMzsxzyJLOLgHXAcnzPzMzM6kieZNYBbBcRf6hWMM2uVCpx3nnncfrpp3tsRjOzHPLcM1sGbF2tQCyboHP58uWemNPMLKc8LbNu4EZJF7HxPbPvjWtUTahUKtHd3U1E0N3dzbx589w6MzOrUJ6W2X7Ab4CDgGPKHkdXIa6m09XVRV9f9q2Hvr4+t87MzHIY1+GsJO0bEb8YtwOOQVGHszryyCN56aUN/WomT57M5ZdfXsOIzMzq1+DhrPK0zCrx83E+XtNob29n0qRJAEyaNIn2dn+lz8ysUuOdzDT6JjaUzs5O+lvJEeEJOs3MchjvZFbIS3xmZlZs453MbIy6urqQsoatJHcAMTPLwcmsTvT09LBu3ToA1q1bR09PT40jMjMrjoqSmTJvljRptE3HIaam1N7ePqBl5g4gZmaVqyiZRdYz4QFGuScWEa8Zj6Ca0UEHHTSgA8jcuXNrHJGZWXHkucx4H+AZpavkxhtvHNAyu/7662sckZlZceRJZkuA6yWdKekESX/d/6hSbE2lp6dnQMvM98zMzCqXZ2zGfYHH2XiCzgA8NuMmam9v5+abb6a3t5fW1lbfMzMzy6HiZBYRc6oZSLPr7Oyku7sbgJaWFn9p2swsh1xd8yVtLekYSaen8naSdqhOaM2lra2Njo4OJNHR0eER883Mcqg4mUlqBx4BjgI+n6pnAP9RhbiaUmdnJzNnznSrzMwsp4pHzZd0H/DJiFgkaXVETJP0KuDJiHhDVaPMoaij5puZWeU2ZdT86RGxKC33J4z/JV8nEjMzs3GXJ5k9LOngQXXvI/sytY2DpUuXcthhh7Fs2bJah2JmVih5ktkngMskXQxMlvRN4PvA6aPtKGlHSYslLZf0kKTTUn2bpJskrUg/p6V6SfqqpEclLZP0rrJjHZe2XyHpuDwvtt7927/9G319fZx77rm1DsXMrFAqTmYRcTvwDuAhsu+VPQ7sERF3VbB7L/CJiJgJ7AWcLGlX4NPAooiYASxKZYAPkHUumQF8jNTJRFIbcAawJ7AHcEZ/Aiy6pUuXsnbtWgDWrl3r1pmZWQ4VdwBZv0M25tLrgOci784bjvET4OvpMTsinpG0LbAkIt6aWn1LIuLytP0jwOz+R0T8XaofsB0UtwPIUUcdtT6ZAUyZMoXLLrushhGZmdWvwR1AKu68IWkr4GvAXwCbAa9I+hFwWkSUchxnOvBO4A7gDRHxDEBKaK9Pm20PPFW226pUN1z9kFasWFFpWDVXnsj6y0WK38ys2mbMmDHsujw9ES8C1pEloieBnYAvkF1yPKSSA0jaErgK+IeI+J/+gXWH2nSIuhihfkgjvfB6M2XKlI1aZkWK38yslvJ0AJkDHBMRyyPixYhYDhxPdulvVJI2I0tkl0XEj1P179LlRdLP36f6VcCOZbvvADw9Qn3hnX76wH40n/rUp2oUiZlZ8eRJZo8A0wfVvSnVjyjdZ/susDwivly2aiHQ3yPxOOAnZfXHpl6NewFr0uXIG4CDJE1LHT8OSnWFN2vWLKZMmQJkrbK3v/3tNY7IzKw48lxmXATcKOlSsvtWOwJHA5eWTwMTEUONoL8vcAzwgKSlqW4+8CWgS9IJwEqy+3EA1wEfBB4FXgT+Kh27JOmLQH8PyrPy3K+rd6effjpnnXWWW2VmZjnlGc5qcQWbRUR0bFpIm6aovRnNzKxyY+7NWMkUMJL2HUtQZmZmmyLXFDAV+Pk4H8/MzGxU453Mhu1rb6MrlUrMnz+f1atX1zoUM7NCGe9k5vtVm6Crq4vly5ezYMGCWodiZlYo453MbIxKpRLd3d1EBN3d3W6dmZnl4GRWJ7q6uujr6wOgr6/PrTMzsxx8z6xO9PT00NvbC0Bvby89PT01jsjMrDgqTmaSvixp1kjbRMRrNj2k5tTe3j5i2czMhpenZbYZcIOkByV9StIO1QqqGe22224DyrvvvnuNIjEzK548k3P+PbAd2QSas4Dlkm6WdGwaDd82wYUXXjigfMEFF9QoEjOz4sl1zywi1kXEtRFxJNmM0dsA3wd+K+k7koadW8xGNtR8ZmZmVplcyUzSayWdkMZpvIVsgs39gZnAC3gEkDHrHzF/uLKZmQ0vTweQK4HfAIcBFwLbRcTHIuIXEfEU8I/AztUJs/F5PjMzs7HLMwXM7cApEfHboVZGRJ+kN4xPWM2nfz6ztWvXej4zM7Oc8nQAOQ/4b0n7S5oHIGmKpCll27xYhRibxqGHHgrA4YcfXuNIzMyKJc9lxt2BXwHfJps1GqAdGGoyThuDq6++GoArr7yyxpGYmRVLng4g/wF8PiLeBryS6nqA/cY9qia0dOnS9T0Y165dy7Jly2ockZlZceSZaXo10BYRIakUEW2pfv1yPSjqTNNHHXXUgO74U6ZM4bLLLqthRGZm9WvwTNN5WmZPAO8ur5C0B/Dopodl/p6ZmdnY5Ulm/wz8TNIXgM0lfQb4EfC5qkTWZCZPnjxi2czMhpenN+O1wAfIRv3oAXYCDouIG6sUW1MZ/CXpLbf0CGFmZpXK8z0zIuJe4KQqxdLUnnvuuQHlZ599tkaRmJkVT8XJTNLmwPFkgwwPaDZExLHjG1bz2XHHHXnqqacGlM3MrDJ57pldDPwD8AfgsUEP20Qf//jHB5Q/8YlP1CgSM7PiyXOZcS6wc0Q8X61gmtmb3/xmtt12W5555hm22247pk+fXuuQzMwKI0/LbCWwRbUCMdh+++0H/DQzs8rkaZldAvxE0r8DvytfERHd4xpVEyqVStx7770A3HPPPaxevZpp06bVOCozs2LIk8xOST/PGVQfwJvHJ5zmdckll9DX1wdAX18fl1xyCaeddlqNozIzK4aKh7MqiqIOZ/XRj36UdevWrS9PmjSJq666qoYRmZnVr8HDWeX6npmkVmAfYHtgFXBbRPSOX3hmZmb55ZkC5m3AcuCHwKnA5cAvJc2sUmxNZc899xxQ3muvvWoUiZlZ8eTpzXgB8C1gx4jYOyJ2AC5M9baJNt988xHLZmY2vDzJbBbw5Rh4k+38VG+b6Pbbbx9Qvu2222oUiZlZ8eRJZk+TzSxdbv9Ub5tom222GbFsZmbDy9MBZD6wUNK1wJPAdOCDwNFViKvpDB5Y2AMNm5lVLs8UMAuBdwIPkg00vAx4V0T8pEqxNZW99957QHmfffapUSRmZsWTZ9T8qcARwLvIktkMoF0SEXFQleJrGn/84x9HLJuZ2fDy3DP7ETAbWARcASwoe4xI0vck/V7Sg2V1bZJukrQi/ZyW6iXpq5IelbRM0rvK9jkubb9C0nE5Yq97d95554DyHXfcUaNIzCZGqVRi/vz5rF69utahWAPIk8z2AuZGxNcj4rvljwr2/T7ZqPvlPg0siogZZAny06n+A2StvhnAx4D/gCz5AWcAewJ7AGf0J0AzK56uri6WL1/OggWjfh42G1WeZHYrMKYvSEfELUBpUPVHyOZII/08pKz+ksjcDmwlaVvgYOCmiChFxGrgJjZOkIW12267DSjvvvvuNYrErPpKpRLd3d1EBN3d3W6d2SbL05vxeOA6SXew8aj5Z43hud8QEc+k/Z+R9PpUvz3wVNl2q1LdcPUNYcWKFQPKjzzySI0iMau+rq6uAQNrL1iwgBNPPLHGUVmR5Ulm/wLsCDwBvLasfrwH9tUQdTFC/bAGJ4h69tJLL21ULlL8ZnksXryY3t5sWNfe3l4WL17MgQceWOOorN7NmDFj2HV5ktkRwC79ralx8DtJ26ZW2bbA71P9KrKk2W8Hsi9mryLrgFJev2SkJxjphRdB0eM3G86cOXO4+eab6e3tpbW1lTlz5vj33TZJnntmvwZeGcfnXgj090g8DvhJWf2xqVfjXsCalEBvAA6SNC11/Dgo1TWEtra2AeWtt966RpGYVV9nZyctLdm/n5aWFubNm1fjiKzo8rTMLiUbAeRr5JxpWtLlZK2q10laRdYr8UtAl6QTgJXAX6TNryMbWeRR4EXgr9JzlCR9EbgrbXdWRAzuVFJYa9asGVB+/vnnaxSJWfW1tbXR0dHBDTfcQEdHh2dVt02WJ5mdnH7mnmk6Io4cZtVGF8nTQMYnD7EtEfE94Hsjh2lmRdDZ2cnKlSvdKrNxUXEyi4idqxlIs9t///1ZsmTJ+vIBBxxQu2DMJkBbWxvnnDP4s7HZ2OS5Z2ZVNHv27AHlOXPm1CYQM7MCcjKrE9/97sCBVL797W/XKBIzs+JxMqsTTz311IhlMzMbnpNZnZgyZcqIZTMzG56TWZ14+eWXRyybmdnwnMzMzKzwnMzqRP84dcOVzcxseE5mdWLy5Mkjls0ajSfntPHkZFYnttxyyxHLZo3Gk3PaeHIyqxPPPvvsiGWzRuLJOWunUVvETmZmNuGGmpzTJkajtoidzMxswvX09AyYnLOnp6fGETWHRm4RO5mZ2YRrb2+ntTUb57y1tZX29vYaR9QcGrlF7GRmZhPOk3PWRiO3iJ3M6kT/p9ThymaNpH9yTkmenHMCNXKL2MmsTmRzkg5fNms0nZ2dzJw5062yCdTILWInszqxbt26EctmjaZ/ck63yiZOI7eIfS3LzKyJdHZ2snLlyoZqlYGTmZlZU+lvETcaX2asEx6b0cxs7JzM6sRLL700YtnMzIbnZGZm1kQ8NqOZmRWex2Y0a1CN+knVbLBSqcSiRYuICBYtWtRQv/NOZtb0GvWTqtlgXV1dA4azaqTfeScza2qNPIp4vXOLeOItWbJk/ehCEcGSJUtqG9A4cjKzptbIo4jXO7eIJ94222wzYrnInMzqxKRJk0YsW3U08iji9ayR793Us0ae0d7JrE54bMbaaORRxOtZI9+7qWezZ89GEgCSmD17dm0DGkdOZtbUGnkU8XrWyPdu6llnZ+eAD2+N9PvuZGZNrZFHEa9njXzvpp61tbWx7777ArDffvs11O+7k5k1vYMOOojJkyczd+7cWofSNBr53k29K7/M2Eg8av44OOSQQ+ryuNdcc804RdLYfvrTn/Liiy+ycOFCTj311FqH0xRmz57N9ddfP6Bs1VcqlfjFL34BwK233soxxxzTMK0zt8ysqZVKJRYvXgzg75lNoL322mtAeZ999qlRJM2lq6trfeeydevWNVTHGycza2qXXnrpiGWrjm9961sDyhdeeGGNImkuPT09A5JZI30VxcnMmtrgXnT9rTSrrqeffnrEslXH4Bbx3nvvXaNIxl/T3TOr1v2tejTer7UR78H1dw8frmxWL6rxv6u7u5vu7u4x719P/xMKmcwkzQX+HZgEfCcivlTjkKwG3PGmuFpaWtYPI9ZfbiTN8qG5Gq9zrH8/hUtmkiYB3wDeD6wC7pK0MCIerm1kVolm+CMfr9c4nkmx3s97X19f3cToDyPFVMSPQ3sAj0bEryPif4ErgI/UOCYzM6uhwrXMgO2Bp8rKq4A9h9pwxYoVExJQs/D5nFg+37Xh815bI53/GTNmDLuuiMlsqK+tD3nXfqQXbvn5fE4sn+/a8HmvrbGefxWt95akvYEzI+LgVP4MQET8X4A1a9YU6wVZzZ199tncfffdvPe97+Wzn/1srcNpCldeeSU/+MEP1pePO+44Dj300BpGZEUzderUAQ2bIt4zuwuYIWlnSZsDRwALaxyTFdhJJ53ErrvuykknnVTrUJrG4YcfPqDsRGabqnDJLCJ6gVOAG4DlQFdEPFTbqKzI2traOOeccxpmjLqiOProo4GsVWa2qQp3mXE0vsxoZtb4GuEyo5mZ2QBOZmZmVnhOZmZmVnhOZmZmVnhOZmZmVnhOZmZmVngN1zXfzMyaj1tmZmZWeHWZzCRNl/TgoLozJX1ylP3eI+mraXm2pH3G8NxPSHrdEPV/LekBScskPSjpI6n+eEnbVXDcirbbFJIuT/F9fJj190u6vMoxfEfSrkPU1+N7ur5e0rslPS7pnZI+LOnTeZ9nmOeeLena8ThWEUh6Ief268/PeJ73RiXpjZKukPSYpIclXSdplyo+X673s5aKOGr+sCLibuDuVJwNvAD816YeV9IOwGeBd0XEGklbAtuk1ccDDwJPj3KYSrcba4xvBPaJiJ2GWT+T7MPLAZKmRMTaKsQwKSL+ZjyPWa33tJyktwNXAvMi4j7gPjze54SLiIX4vA9LkoCrgYsj4ohUNwt4A/CrWsZWD+qyZTYaSUsknSvpTkm/krR/qp8t6VpJ04ETgY9LWippf0nbSLpK0l3psW/aZ2tJN0q6T9I3GXqKmdcDfyD7R0pEvBARj0s6HHgPcFl6nsmSPp+O/6Ckbykz1HbvltQj6R5JN0jaNsVzavrEtUzSFUO89ldJuii1Eu+TNCetuhF4ff/rHeI1/CVwadruw4PO5Vck3SJpuaT3SvqxpBWSzi7b7uh0vpdK+qayGb+R9IKksyTdAeydjveetG6upHsl3Q9clur2kPRfku4DTiB9KKjBe9pvJnANcExE3Jn2P17S19Py9yV9NcX86/ReIqlF0gWSHkrxXVe2bq6kX0q6FTis7By2Sbomvbe3pyTa30K9OMX8hKTDJP1reo+vl7TZCPHXpfS+LZF0ZToXl0lSWjfc+Sk/738u6Y70Ht4s6Q01ein1ZA7wSkRc2F8REUuB+yQtSn9rD2jDVaPp6W/62+n39EZJk9O6v01/M/env6FXp/qdJd2W1n2x/3kkbTnUc9SViKi7BzAdeHBQ3ZnAJ9PyEuD/peUPAjen5dnAtYO3T+UfAvul5TcBy9PyV4HPp+UPkc2N9rpBzz2JbGDjlcBFwJ+XrVsCvKes3Fa2fGn/tuXbAZuRtS62SeV5wPfS8tPAFml5qyHOzSeAi9Ly21JMrxrqnA3a71fATsBBwMJB8Z+blk9Lz78tsAXZxKdbk/3D/ymwWdruAuDYtBxA5+DzQZakngJ2TvXvIGuZvhZoTXWXAMtq8Z6mdU8AJeCDg+qPB76elr8P/Ijsg9+uZLOcAxwOXJfq3wisTnWvSq97BlkS7SqL/2vAGWm5A1ha9rpuTb8X7wBeBD6Q1l0NHFLrv8kcf7svlL1va4Ad0jm6DdhvlPNTft6nsaGD2t/0/2408wM4FfjKEPWtwGvT8uuAR9O5nQ70ArPSui7g6LS8ddn+ZwN/n5YXsuFv++Sy93PI56j1OSl/1OtlxuG6WJbX/zj9vIfsTRvN+4Bd04dDgNdKeg1wAOnTYUT8TNLqjZ40Yp2kucB7gQOBr0h6d0ScOcTzzJH0T8CrgTbgIbJEUO6twJ8CN6V4JgHPpHXLyFpw15C1GAbbj+yfIhHxS0lPArsA/zPcC5f0XuDZiHhS0irge5KmRUT/a+2/tPMA8FBEPJP2+zWwY3rOdwN3pXgnA79P+6wDrhriafcCbomIx1P5+fRzKnCxpBlsuFTbb8Le0zI3A38j6YaIWDfMNtdERB/wcFkLYT/gR6n+t5IWp/q3AY9HxAoAST8APla2z0dTXN2pBTk1rft5RLwi6QGy34frU/0DVHYu6tGdEbEKQNJSstfxAsOfn3I7AAuUXbHYHHh8iG0sI+AcSQcAfcD2ZJceITvXS9Ny+d/Vnyq78rIVsCXZh3WAfUm/o2Qfxs8d5Tl+W40XNBb1epnxv8k+mZVrA54rK7+cfq6jsnt/LcDeETErPbaPiD+kdaN+PyEyd0Y2CegRbHjD15P0KrJWy+ERsTvwbbJPohttSpY0+mPZPSIOSus+BHyDLHncI2nwaxvpktlwjgTeJukJ4DGy1lF5/P3nsq9sub/cmp7z4rJ431qWyP84TBIQA89r/3v6RWBxRPwpG1o2g+OYkPc0OSX9vGCEbcrPiQYObw1PAAAGN0lEQVT9HMpwzz3SLOkvA6Tk+Eqkj8BseA+KqPy8lb+nlbw3XyNrpe0O/B1D/x01m4fI/i8MdhTZB8N3R8Qs4HdsOF/DvQffB05J5/cLDDy/Q70/Iz1HXajLZBYRLwDPSDoQsnsNwFyySzGV+gPwmrLyjWz4x9V/4xTgFrI3CkkfYOMkiqTtJL2rrGoW8OQQz9P/5j6nrJNI+QyE5ds9AmyjbNZsJG0maTdJLcCOEbEY+Cc2fGoqVx7vLmSX1x4Z5hyQjvkXwNsjYnpETAc+QpbgKrUIOFzS69Mx2yQN2dGkzG1Au6SdU3lzstbnW4DfpPf0wwz8YxvNuL2nZfrIzsVbJZ2VI5ZbgY+me2dvILusBvBLYGdJf5LK5ee5PK7ZwHMRMWyLukGNdH7KTQV+k5Y94VmmG9hC0t/2V6SrLjsBv08t+zmpPJrXkP2P3Yz0O5n8guzDOoPqp47hOSZUXSaz5Fjgc+nyRDfwhYh4LMf+PwUO1YYOEacC71F28/1hss4EkH0qOUDSvWT3k1YOcazNgPPSTeulZPe4Tkvrvg9cmOpfJmuNPUB2ifCusmOUbzeJLNGdq6xzxFJgn1T/g3Sp6T6y6+PPM9AFwKS0zQLg+IgYKSEcAPwmIn5TVncL2eW5bUfYb72IeBj4HHCjpGXATWT31Uba51myy0c/Tq9xAdl7OpmsM8jKFEdvJTEk4/melsf6MlmC/7CkkyuM5Sqye4oPAt8E7gDWRMQfyV73z1IHhyfL9jmzP17gSzThP+lRzk+5M4EfSfpPBl6RaVqptX4o8H5lXfMfIjtP15H9Xt1NloB+WcHh/pnsd/amQdufBpws6S6yBNbvsjE8x4TyCCBmYyRpy4h4QdLWwJ3AvhFRN/cQzJpJUa/Fm9WDayVtRXYJ9YtOZGa145aZmZkVXj3fMzMzM6uIk5mZmRWek5mZmRWek5mZASBpvqTv1DoOs7FwMjMbI0l/KeluZYMtPyPp55L2q/JzhqS3bML+09MxNurJHBHnxDjPemA2UZzMzMZA0j8C5wPnkI1R9yayL7TXdDTxoZKUWTNwMjPLKQ0OfBZwckT8OCLWRsQrEfHTiDhd0haSzpf0dHqcL2mLtO/xaeSL8uOtb20pm3LmG5J+JukPyqZB+ZO07pa0y/2pNThP2VQrqyR9StJvgYuUTT/052XH30zSc2XDfQ33us5MA/+ibOqZUwatv1/SYWn5bZJuklSS9Iikzk05p2abysnMLL+9ycbhvHqY9Z8lmzVgFtmULnuQDQdWqSPJhuSaRjbVxr8ARMQBaf07ImLLiFiQym8kG4h7J7Khoi4Bji473geBZ8pGT6/EDykbN1HZ7OE7kQ1DNYVsGKQfks31dyRwgaTdchzfbFw5mZnltzXZIMHDjSt5FHBWRPw+jVH5BeCYHMf/cZqhoZdsTLwRW1RkgyWfEREvR8RLwA+AD0p6bVp/DNl0HnlcDcwqG1D6qBTXy8CfAU9ExEUR0RsR95KNVXn4MMcyqzonM7P8/ht43Qj3p7Zj4AC6T6a6SpUPi/UiG8+cMNizaQBfACLiabLRzz+ahtv6AGmm70qlqXR+xoYR1I8oO8ZOwJ6Snu9/kCW7N+Z5DrPx5JvFZvndBvwROAS4coj1T5P9w38old+U6gDWkk3cCoCk8UgAQ41JdzHZDM2twG2DZk2o1OXAGele3WSgfwLSp4CeiHj/WII1qwa3zMxyiog1wOeBb0g6RNKrUyeLD0j6V7Ik8DlJ20h6Xdr2B2n3+4HdJM1SNpnrmTmf/nfAmyvY7hrgXWRTelwyxPotJL2q7DHU/4LryJLyWcCCNHEowLXALpKOSa97M0nvlTQz52sxGzdOZmZjEBFfBv6RrGPHs2StlVPIksjZwN3AMrK57e5NdUTEr8iSw83ACvJNOAtZ8rs4Xd4btgdhund2FbAz8OMhNnkBeKns0THEMV5O+76PrLNHf/0fyOaJO4Ksxflb4Fxgi5yvxWzceNR8swYl6fPALhFx9KgbmxWc75mZNSBJbcAJ5OtFaVZYvsxo1mAk/S3ZZc+fR8Qto21v1gh8mdHMzArPLTMzMys8JzMzMys8JzMzMys8JzMzMys8JzMzMys8JzMzMyu8/w+ZDeaz6bT69AAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.boxplot(y = 'money_per_month', x = 'CountryLive',\n", " data = only_4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obviously, one country we should advertise in is the US. Lots of new coders live there and they are willing to pay a good amount of money each month. We want to choose one more market though, but how can we decide between the other three countries?\n", "\n", "# Finding the Second Best Market Using Z-scores\n", "\n", "At a first look, it seems that Canada is the best choice because people there are willing to pay roughly \\$36 per month, compared to India (\\$30) and the United Kingdom (\\$19).\n", "\n", "We sell subscription at a price of \\$59 per month, and Canada seems to be the closest to this figure. But we need to take into account the variability of each distribution before drawing any conclusion. We could use z-scores to figure out for which of these three markets \\$59 feels like the least expensive. To do that, we'll compute a z-score for \\$59 for each market, and the market with the lowest z-score will be our choice." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "India: 0.2301503759200336\n", "Canada: 0.21909241155098433\n", "United Kingdom: 0.8967313005116766\n" ] } ], "source": [ "for country in ['India', 'Canada', 'United Kingdom']:\n", " one_country = only_4[only_4['CountryLive'] == country]\n", " mean = one_country['money_per_month'].mean()\n", " st_dev = one_country['money_per_month'].std(ddof = 1)\n", " z = (59 - mean) / st_dev\n", " print(country + ': ' + str(z))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Canada has the lowest z-score (0.22), but India's is just slightly greater (0.23). We can stop considering the United Kingdom at this point because its z-score is quite big compared to the other two countries.\n", "\n", "With these two z-scores that are very close to one other, it might make sense to actually choose India because there are more potential customers there:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "United States of America 579\n", "India 90\n", "United Kingdom 58\n", "Canada 45\n", "Name: CountryLive, dtype: int64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "only_4['CountryLive'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point, we have several options:\n", "\n", "1. Advertise only in the US and India. Probably it make sense to split the advertisement budget unequally. For instance:\n", " - 70% for the US, and 30% for India.\n", " - 65% for the US, and 35% for India; etc.\n", "2. Advertise in the US, India, and Canada by splitting the advertisement budget in various combinations:\n", " - 60% for the US, 25% for India, 15% for Canada.\n", " - 50% for the US, 30% for India, 20% for Canada; etc.\n", "3. Advertise only in the US.\n", "\n", "At this point, it's probably best to send our analysis to the marketing team and let them use their domain knowledge to decide. They might want to do some extra surveys in India and Canada and then get back to us for analyzing the new survey data.\n", "\n", "# Conclusion\n", "\n", "In this project, we analyzed survey data from new coders to find the best two markets to advertise in. The only solid conclusion we reached is that the US would be a good market to advertise in.\n", "\n", "For the second best market, it wasn't clear-cut what to choose between India and Canada. We decided to send the results to the marketing team so they can use their domain knowledge to take the best decision." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }