This analysis is being completed for a company that produces free apps on both Android and iOS mobile platforms. The company's primary revenue stream is in-app ads. As such, the company would like to maximize its revenue by producing free apps that engage a the largest number of users possible.
To determine what types of apps attract the most users, Google Play & Apple Store app data will be used to to evaluate the type of apps that users engage with most frequently. The goal of this analysis is to make recommendations for mobile apps that are likely to generate the highest revenue.
As of 2018, the Google Play Store had 2.1 million Android apps and the App Store had 2 million iOS apps available. In order to conduct this analysis, a sample of the total apps on each platform will be used. The sample contains data from approximately 10,000 Android apps and 7,000 iOS apps.
#Open both data sets & save both as lists of lists
from csv import reader
opened_file_ios = open('AppleStore.csv')
read_file_ios = reader(opened_file_ios)
ios_data = list(read_file_ios)
ios_header = ios_data[0]
ios_data = ios_data[1:]
opened_file_android = open('googleplaystore.csv')
read_file_android = reader(opened_file_android)
android_data = list(read_file_android)
android_header = android_data[0]
android_data = android_data[1:]
The code below creates an explore_data() function to print rows from the datasets for the purpose of exploring the data.
def explore_data(dataset, start, end, rows_and_columns=False):
dataset_slice = dataset[start:end]
for row in dataset_slice:
print(row)
print('\n')
if rows_and_columns:
print('Number of rows:', len(dataset))
print('Number of columns:', len(dataset[0]))
#Print the first 3 rows of the Android app dataset
explore_data(android_data, 0, 3, True)
print('\n')
#Print the first 3 rows of the iOS app dataset
explore_data(ios_data, 0, 3, True)
['Photo Editor & Candy Camera & Grid & ScrapBook', 'ART_AND_DESIGN', '4.1', '159', '19M', '10,000+', 'Free', '0', 'Everyone', 'Art & Design', 'January 7, 2018', '1.0.0', '4.0.3 and up'] ['Coloring book moana', 'ART_AND_DESIGN', '3.9', '967', '14M', '500,000+', 'Free', '0', 'Everyone', 'Art & Design;Pretend Play', 'January 15, 2018', '2.0.0', '4.0.3 and up'] ['U Launcher Lite – FREE Live Cool Themes, Hide Apps', 'ART_AND_DESIGN', '4.7', '87510', '8.7M', '5,000,000+', 'Free', '0', 'Everyone', 'Art & Design', 'August 1, 2018', '1.2.4', '4.0.3 and up'] Number of rows: 10841 Number of columns: 13 ['284882215', 'Facebook', '389879808', 'USD', '0.0', '2974676', '212', '3.5', '3.5', '95.0', '4+', 'Social Networking', '37', '1', '29', '1'] ['389801252', 'Instagram', '113954816', 'USD', '0.0', '2161558', '1289', '4.5', '4.0', '10.23', '12+', 'Photo & Video', '37', '0', '29', '1'] ['529479190', 'Clash of Clans', '116476928', 'USD', '0.0', '2130805', '579', '4.5', '4.5', '9.24.12', '9+', 'Games', '38', '5', '18', '1'] Number of rows: 7197 Number of columns: 16
#Print the column names of both datasets
print(android_header)
print('\n')
print(ios_header)
['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'] ['id', 'track_name', 'size_bytes', 'currency', 'price', 'rating_count_tot', 'rating_count_ver', 'user_rating', 'user_rating_ver', 'ver', 'cont_rating', 'prime_genre', 'sup_devices.num', 'ipadSc_urls.num', 'lang.num', 'vpp_lic']
The categories most likely to help us conduct this analysis include:
Android Apps | iOS Apps | Content of Category |
---|---|---|
App | track_name | Name of the App |
Category | prime_genre | Type of App |
Price | price | Price of App |
Rating | user_rating | Average Rating |
Reviews | rating_count_tot | Total number of Reviews |
Content Rating | cont_rating | Audience/Content Rating |
In this next section, the data will be cleaned to remove errors, duplicates and make corrections to allow for analysis.
#Print the row with the suspected error
print(android_data[10472:10473])
[['Life Made WI-Fi Touchscreen Photo Frame', '1.9', '19', '3.0M', '1,000+', 'Free', '0', 'Everyone', '', 'February 11, 2018', '1.0.19', '4.0 and up']]
This row does have an error. The category, or type of app, is missing. As a result all data has been shifted left. This makes this row unuseable for this analysis and we will delete the row.
del android_data[10472]
#Print the length of the dataset to ensure the row has been deleted.
print(len(android_data))
10840
Upon review of the Google Play Store app data, it is evident that some apps are included in the dataset multiple times. For example, Facebook is included twice as demonstrated below.
for app in android_data:
name = app[0]
if name == 'Facebook':
print(app)
['Facebook', 'SOCIAL', '4.1', '78158306', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'August 3, 2018', 'Varies with device', 'Varies with device'] ['Facebook', 'SOCIAL', '4.1', '78128208', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'August 3, 2018', 'Varies with device', 'Varies with device']
Upon review of the Facebook duplicates, all entries are the same with the exception of the number of reviews. In the next cell, we will examine how many duplications exist in the dataset and then we will remove duplications.
duplicate_apps = []
unique_apps = []
for app in android_data:
name = app[0]
if name in unique_apps:
duplicate_apps.append(name)
else:
unique_apps.append(name)
print('Number of duplicate app entries:', len(duplicate_apps))
Number of duplicate app entries: 1181
As we see above, there are 1181 duplications in the Google Play Store apps data and duplications can skew analyzes we might wish to run on these datasets. As such, we will have to remove duplicates, but cannot do so randomly. In order to systematically remove duplications, we will utilize the number of reviews received to determine with entry to keep, selecting the entry with the greatest number of reviews. This is a reasonable criterion given that it is most likely that the higher number of reviews includes all previous reviews.
#Creating a dictionary of app names and the corresponding highest number of reviews.
#Create an empty dictionary:
reviews_max = {}
#Loop through the Android dataset converting the number of reviews (index 3) to a float
#and placing the app name in the dictionary, if not already there. If the app name is
#already in the dictionary, the number or revies associated with the app name will be updated
#in the dictionary, if it is greater than the number already present.
for app in android_data:
name = app[0]
n_reviews = float(app[3])
if name in reviews_max and reviews_max[name] < n_reviews:
reviews_max[name] = n_reviews
elif name not in reviews_max:
reviews_max[name] = n_reviews
#Examine the length of the created dictionary against what is expected, given the number of
#duplicate apps in the dataset
print('Expected length:', len(android_data) - 1181)
print('Actual length:', len(reviews_max))
Expected length: 9659 Actual length: 9659
#Use the reviews_max dictionary created above to remove duplicate rows
#Create two empty lists. One for the dataset without duplicates (android_clean) and the
#other for app names
android_clean = []
already_added = []
#Loop through the Android dataset and add apps to the android_clean list if the app name
#is not already in the already_added list and the number of reviews is equal to the
#number of reviews in the reviews_max dictionary
for app in android_data:
name = app[0]
n_reviews = float(app[3])
if n_reviews == reviews_max[name] and name not in already_added:
android_clean.append(app)
already_added.append(name)
#Review the new dataset
explore_data(android_clean, 0, 3, True)
['Photo Editor & Candy Camera & Grid & ScrapBook', 'ART_AND_DESIGN', '4.1', '159', '19M', '10,000+', 'Free', '0', 'Everyone', 'Art & Design', 'January 7, 2018', '1.0.0', '4.0.3 and up'] ['U Launcher Lite – FREE Live Cool Themes, Hide Apps', 'ART_AND_DESIGN', '4.7', '87510', '8.7M', '5,000,000+', 'Free', '0', 'Everyone', 'Art & Design', 'August 1, 2018', '1.2.4', '4.0.3 and up'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] Number of rows: 9659 Number of columns: 13
In these next couple of cells, we will create a function to identify non-English characters in order to isolate only English language apps in the two datasets
#Create a function, is_english, to identify non-English characters by using ascii numbers
#and returning false if more than 3 characters in the string have an ascii number greater than 127
def is_english(string):
non_ascii = 0
for character in string:
if ord(character) > 127:
non_ascii += 1
if non_ascii > 3:
return False
else:
return True
#Test the function to ensure it works as intended
print(is_english('Instagram'))
print(is_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(is_english('Docs To Go™ Free Office Suite'))
print(is_english('Instachat 😜'))
True False True True
#Loop through each dataset to remove non-English language apps using the is_english function created above
english_ios_data = []
english_android_data = []
for app in android_clean:
name = app[0]
if is_english(name):
english_android_data.append(app)
for app in ios_data:
name = app[1]
if is_english(name):
english_ios_data.append(app)
explore_data(english_android_data, 0, 3, True)
print('\n')
explore_data(english_ios_data, 0, 3, True)
['Photo Editor & Candy Camera & Grid & ScrapBook', 'ART_AND_DESIGN', '4.1', '159', '19M', '10,000+', 'Free', '0', 'Everyone', 'Art & Design', 'January 7, 2018', '1.0.0', '4.0.3 and up'] ['U Launcher Lite – FREE Live Cool Themes, Hide Apps', 'ART_AND_DESIGN', '4.7', '87510', '8.7M', '5,000,000+', 'Free', '0', 'Everyone', 'Art & Design', 'August 1, 2018', '1.2.4', '4.0.3 and up'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] Number of rows: 9614 Number of columns: 13 ['284882215', 'Facebook', '389879808', 'USD', '0.0', '2974676', '212', '3.5', '3.5', '95.0', '4+', 'Social Networking', '37', '1', '29', '1'] ['389801252', 'Instagram', '113954816', 'USD', '0.0', '2161558', '1289', '4.5', '4.0', '10.23', '12+', 'Photo & Video', '37', '0', '29', '1'] ['529479190', 'Clash of Clans', '116476928', 'USD', '0.0', '2130805', '579', '4.5', '4.5', '9.24.12', '9+', 'Games', '38', '5', '18', '1'] Number of rows: 6183 Number of columns: 16
#Loop through the two datasets to create the final datasets with only free apps included
ios_final = []
android_final = []
for app in english_android_data:
price = app[7]
if price == '0':
android_final.append(app)
for app in english_ios_data:
price = app[4]
if price == '0.0':
ios_final.append(app)
explore_data(android_final, 0, 3, True)
print('\n')
explore_data(ios_final, 0, 3, True)
['Photo Editor & Candy Camera & Grid & ScrapBook', 'ART_AND_DESIGN', '4.1', '159', '19M', '10,000+', 'Free', '0', 'Everyone', 'Art & Design', 'January 7, 2018', '1.0.0', '4.0.3 and up'] ['U Launcher Lite – FREE Live Cool Themes, Hide Apps', 'ART_AND_DESIGN', '4.7', '87510', '8.7M', '5,000,000+', 'Free', '0', 'Everyone', 'Art & Design', 'August 1, 2018', '1.2.4', '4.0.3 and up'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] Number of rows: 8864 Number of columns: 13 ['284882215', 'Facebook', '389879808', 'USD', '0.0', '2974676', '212', '3.5', '3.5', '95.0', '4+', 'Social Networking', '37', '1', '29', '1'] ['389801252', 'Instagram', '113954816', 'USD', '0.0', '2161558', '1289', '4.5', '4.0', '10.23', '12+', 'Photo & Video', '37', '0', '29', '1'] ['529479190', 'Clash of Clans', '116476928', 'USD', '0.0', '2130805', '579', '4.5', '4.5', '9.24.12', '9+', 'Games', '38', '5', '18', '1'] Number of rows: 3222 Number of columns: 16
In this section, we will analyze the data to acheive the end goal of identifying apps likely to attract the most users on both Android & iOS platforms.
Our company builds free apps that appeal to a wide range of mobile users and we earn our revenue through in-app ads. We use a step-wise process to building an app, starting with a minimal Android version on Google Play. Based on user response, we either continue to develop the app or drop it. If the app is profitable after 6 months on Goggle Play, we build an iOS version for the Apple Store.
We seek to build apps that are successful on both Google Play and the Apple Store. In order to identify future app possibilities, we will be using the Android and iOS datasets to identify genres of apps that are successful on both platforms.
#Print the dataset columns to identify columns to use for generating frequency tables
print(android_header)
print('\n')
print(ios_header)
['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'] ['id', 'track_name', 'size_bytes', 'currency', 'price', 'rating_count_tot', 'rating_count_ver', 'user_rating', 'user_rating_ver', 'ver', 'cont_rating', 'prime_genre', 'sup_devices.num', 'ipadSc_urls.num', 'lang.num', 'vpp_lic']
#Create a function to return a frequency table with percetages for any column we select
def freq_table(dataset, index):
table = {}
total = 0
for row in dataset:
total += 1
value = row[index]
if value in table:
table[value] += 1
else:
table[value] = 1
table_perc = {}
for key in table:
percentage = (table[key]/total)*100
table_perc[key] = percentage
return table_perc
#Define the display_table function
def display_table(dataset, index):
table = freq_table(dataset, index)
table_display = []
for key in table:
key_val_as_tuple = (table[key], key)
table_display.append(key_val_as_tuple)
table_sorted = sorted(table_display, reverse = True)
for entry in table_sorted:
print(entry[1], ':', entry[0])
#Return the frequency table for the prime_genre column of the iOS dataset
display_table(ios_final, -5)
Games : 58.16263190564867 Entertainment : 7.883302296710118 Photo & Video : 4.9658597144630665 Education : 3.662321539416512 Social Networking : 3.2898820608317814 Shopping : 2.60707635009311 Utilities : 2.5139664804469275 Sports : 2.1415270018621975 Music : 2.0484171322160147 Health & Fitness : 2.0173805090006205 Productivity : 1.7380509000620732 Lifestyle : 1.5828677839851024 News : 1.3345747982619491 Travel : 1.2414649286157666 Finance : 1.1173184357541899 Weather : 0.8690254500310366 Food & Drink : 0.8069522036002483 Reference : 0.5586592178770949 Business : 0.5276225946617008 Book : 0.4345127250155183 Navigation : 0.186219739292365 Medical : 0.186219739292365 Catalogs : 0.12414649286157665
#Return the frequency table for the category column of the Android dataset
display_table(android_final, 1)
FAMILY : 18.907942238267147 GAME : 9.724729241877256 TOOLS : 8.461191335740072 BUSINESS : 4.591606498194946 LIFESTYLE : 3.9034296028880866 PRODUCTIVITY : 3.892148014440433 FINANCE : 3.7003610108303246 MEDICAL : 3.531137184115524 SPORTS : 3.395758122743682 PERSONALIZATION : 3.3167870036101084 COMMUNICATION : 3.2378158844765346 HEALTH_AND_FITNESS : 3.0798736462093865 PHOTOGRAPHY : 2.944494584837545 NEWS_AND_MAGAZINES : 2.7978339350180503 SOCIAL : 2.6624548736462095 TRAVEL_AND_LOCAL : 2.33528880866426 SHOPPING : 2.2450361010830324 BOOKS_AND_REFERENCE : 2.1435018050541514 DATING : 1.861462093862816 VIDEO_PLAYERS : 1.7937725631768955 MAPS_AND_NAVIGATION : 1.3989169675090252 FOOD_AND_DRINK : 1.2409747292418771 EDUCATION : 1.1620036101083033 ENTERTAINMENT : 0.9589350180505415 LIBRARIES_AND_DEMO : 0.9363718411552346 AUTO_AND_VEHICLES : 0.9250902527075812 HOUSE_AND_HOME : 0.8235559566787004 WEATHER : 0.8009927797833934 EVENTS : 0.7107400722021661 PARENTING : 0.6543321299638989 ART_AND_DESIGN : 0.6430505415162455 COMICS : 0.6204873646209386 BEAUTY : 0.5979241877256317
#Return the frequency table for the genres column of the Android dataset
display_table(android_final, -4)
Tools : 8.449909747292418 Entertainment : 6.069494584837545 Education : 5.347472924187725 Business : 4.591606498194946 Productivity : 3.892148014440433 Lifestyle : 3.892148014440433 Finance : 3.7003610108303246 Medical : 3.531137184115524 Sports : 3.463447653429603 Personalization : 3.3167870036101084 Communication : 3.2378158844765346 Action : 3.1024368231046933 Health & Fitness : 3.0798736462093865 Photography : 2.944494584837545 News & Magazines : 2.7978339350180503 Social : 2.6624548736462095 Travel & Local : 2.3240072202166067 Shopping : 2.2450361010830324 Books & Reference : 2.1435018050541514 Simulation : 2.0419675090252705 Dating : 1.861462093862816 Arcade : 1.8501805054151623 Video Players & Editors : 1.7712093862815883 Casual : 1.7599277978339352 Maps & Navigation : 1.3989169675090252 Food & Drink : 1.2409747292418771 Puzzle : 1.128158844765343 Racing : 0.9927797833935018 Role Playing : 0.9363718411552346 Libraries & Demo : 0.9363718411552346 Auto & Vehicles : 0.9250902527075812 Strategy : 0.9138086642599278 House & Home : 0.8235559566787004 Weather : 0.8009927797833934 Events : 0.7107400722021661 Adventure : 0.6768953068592057 Comics : 0.6092057761732852 Beauty : 0.5979241877256317 Art & Design : 0.5979241877256317 Parenting : 0.4963898916967509 Card : 0.45126353790613716 Casino : 0.42870036101083037 Trivia : 0.41741877256317694 Educational;Education : 0.39485559566787 Board : 0.3835740072202166 Educational : 0.3722924187725632 Education;Education : 0.33844765342960287 Word : 0.2594765342960289 Casual;Pretend Play : 0.236913357400722 Music : 0.2030685920577617 Racing;Action & Adventure : 0.16922382671480143 Puzzle;Brain Games : 0.16922382671480143 Entertainment;Music & Video : 0.16922382671480143 Casual;Brain Games : 0.13537906137184114 Casual;Action & Adventure : 0.13537906137184114 Arcade;Action & Adventure : 0.12409747292418773 Action;Action & Adventure : 0.10153429602888085 Educational;Pretend Play : 0.09025270758122744 Simulation;Action & Adventure : 0.078971119133574 Parenting;Education : 0.078971119133574 Entertainment;Brain Games : 0.078971119133574 Board;Brain Games : 0.078971119133574 Parenting;Music & Video : 0.06768953068592057 Educational;Brain Games : 0.06768953068592057 Casual;Creativity : 0.06768953068592057 Art & Design;Creativity : 0.06768953068592057 Education;Pretend Play : 0.056407942238267145 Role Playing;Pretend Play : 0.04512635379061372 Education;Creativity : 0.04512635379061372 Role Playing;Action & Adventure : 0.033844765342960284 Puzzle;Action & Adventure : 0.033844765342960284 Entertainment;Creativity : 0.033844765342960284 Entertainment;Action & Adventure : 0.033844765342960284 Educational;Creativity : 0.033844765342960284 Educational;Action & Adventure : 0.033844765342960284 Education;Music & Video : 0.033844765342960284 Education;Brain Games : 0.033844765342960284 Education;Action & Adventure : 0.033844765342960284 Adventure;Action & Adventure : 0.033844765342960284 Video Players & Editors;Music & Video : 0.02256317689530686 Sports;Action & Adventure : 0.02256317689530686 Simulation;Pretend Play : 0.02256317689530686 Puzzle;Creativity : 0.02256317689530686 Music;Music & Video : 0.02256317689530686 Entertainment;Pretend Play : 0.02256317689530686 Casual;Education : 0.02256317689530686 Board;Action & Adventure : 0.02256317689530686 Video Players & Editors;Creativity : 0.01128158844765343 Trivia;Education : 0.01128158844765343 Travel & Local;Action & Adventure : 0.01128158844765343 Tools;Education : 0.01128158844765343 Strategy;Education : 0.01128158844765343 Strategy;Creativity : 0.01128158844765343 Strategy;Action & Adventure : 0.01128158844765343 Simulation;Education : 0.01128158844765343 Role Playing;Brain Games : 0.01128158844765343 Racing;Pretend Play : 0.01128158844765343 Puzzle;Education : 0.01128158844765343 Parenting;Brain Games : 0.01128158844765343 Music & Audio;Music & Video : 0.01128158844765343 Lifestyle;Pretend Play : 0.01128158844765343 Lifestyle;Education : 0.01128158844765343 Health & Fitness;Education : 0.01128158844765343 Health & Fitness;Action & Adventure : 0.01128158844765343 Entertainment;Education : 0.01128158844765343 Communication;Creativity : 0.01128158844765343 Comics;Creativity : 0.01128158844765343 Casual;Music & Video : 0.01128158844765343 Card;Action & Adventure : 0.01128158844765343 Books & Reference;Education : 0.01128158844765343 Art & Design;Pretend Play : 0.01128158844765343 Art & Design;Action & Adventure : 0.01128158844765343 Arcade;Pretend Play : 0.01128158844765343 Adventure;Education : 0.01128158844765343
*iOS Genre Frequency:* The game genre comprises 58% of the free English iOS, which far exceeds the frequency of any other genre. The next most common genre is entertainment apps, which comprise 7.9% of all free English apps. Amongst the top ten genres, six are intended for entertainment purposes and comprise a total of 78.4% of all free English apps. The other 4 apps in the top 10 - education, shopping, utilities, and health & fitness – make up 10.8% of the free English apps.
Based on this data alone, free English entertainment apps are more common than other types of apps and games are significant more common than any other type of app. However, this data speaks only to the frequency of these types of apps on the iOS platform and does not indicate the number of users or how popular the apps are. Thus, this data suggests that we should further explore entertainment apps, but we must first understand if frequency correlates with usage or popularity. It would be unwise to recommend an app profile for development based solely on this data; further analysis is necessary to better understand user preferences.
*Android Genre Frequency:* The tools genre (8.45%) and the family category (18.91%) are the more common among the Android free English apps. While the top 10 categories and genres largely overlap in the free English Android dataset, there is some variability, likely due to the definition of categories versus genres. In order to mirror the iOS discussion, we will consider the Android genres. Unlike the iOS app frequencies, there is not one genre that rises far above others within the free English Android apps. The top genre is tools followed by a mix of both entertainment and practical apps. Only 2 of the top 10 apps in the Android dataset are entertainment apps – entertainment & sports – and they comprise 9.5% of all free English apps. The remaining 8 apps in the top 10 are oriented towards lifestyle, business, finance, and productivity. These apps make up 36.8% of the free English Android apps.
Like the iOS dataset, these numbers reflect the frequency of the genre within the free English apps and not the popularity or reach of the apps. Thus, we can conclude that the frequency of different types of apps varies from the App Store to Google Play. From the frequency data, free English iOS apps appear to be largely for entertainment purposes, while free English Android apps appear to have more balance between entertainment and practical apps. However, we cannot identify which free English apps are the most used or most popular. Further analysis will be needed to make a recommendation for an app to develop.
The fastest way to identify the apps that are most popular would be to identify the average number of installs by genre. However, install data is only available in the Android data. In order to analyze the iOS dataset, we will utilize number of ratings as a proxy for installs.
#Using the freq_table function created previously, we'll generate a frequency table of the
#prime_genres in the iOS dataset and then we'll loop through the dataset to determine the
#average number of user ratings for each genre.
genres_ios = freq_table(ios_final, -5)
for genre in genres_ios:
total = 0
len_genre = 0
for app in ios_final:
genre_app = app[-5]
if genre_app == genre:
n_ratings = float(app[5])
total += n_ratings
len_genre += 1
avg_n_ratings = total / len_genre
print(genre, ':', avg_n_ratings)
Music : 57326.530303030304 Health & Fitness : 23298.015384615384 Social Networking : 71548.34905660378 Shopping : 26919.690476190477 Games : 22788.6696905016 Productivity : 21028.410714285714 Catalogs : 4004.0 Utilities : 18684.456790123455 Book : 39758.5 Travel : 28243.8 Education : 7003.983050847458 Sports : 23008.898550724636 Navigation : 86090.33333333333 Finance : 31467.944444444445 Medical : 612.0 Reference : 74942.11111111111 Weather : 52279.892857142855 Business : 7491.117647058823 Lifestyle : 16485.764705882353 Entertainment : 14029.830708661417 Food & Drink : 33333.92307692308 Photo & Video : 28441.54375 News : 21248.023255813954
*Analyzing the iOS apps based on average user ratings:* The type of popular genres in the Apple Store, based on average number of user ratings, is a very different picture than the frequency of genre types. The most popular free English apps by average number of user ratings is balanced between entertainment and practical apps. The most popular is navigation apps, followed by reference, and then social networking.
Based on the frequency of app genres in both datasets and the popularity of app generes in the Apple Store, we would recommend building a free finance app. Free English finance apps are in the top 10 for frequency on Google Play and are in the top 10 most popular on the Apple Store. However, they are also infrequent (1.1% of free English apps) on the Apple Store, indicating that there is room in the market for another app.
Now we will move on to analyzing the Android dataset.
#We will replicate the code from the iOS frequency table above. Using the freq_table
#function created previously, we'll generate a frequency table of the categories in
#the Android dataset and then we'll loop through the dataset to remove string characters, convert
#number of installs to floats, and determine the average number of installs for each genre.
categories_android = freq_table(android_final, 1)
for category in categories_android:
total = 0
len_category = 0
for app in android_final:
category_app = app[1]
if category_app == category:
n_installs = app[5]
n_installs = n_installs.replace(',', '')
n_installs = n_installs.replace('+', '')
total += float(n_installs)
len_category += 1
avg_n_installs = total / len_category
print(category, ':', avg_n_installs)
BEAUTY : 513151.88679245283 SOCIAL : 23253652.127118643 COMICS : 817657.2727272727 PARENTING : 542603.6206896552 HOUSE_AND_HOME : 1331540.5616438356 HEALTH_AND_FITNESS : 4188821.9853479853 PERSONALIZATION : 5201482.6122448975 MAPS_AND_NAVIGATION : 4056941.7741935486 PHOTOGRAPHY : 17840110.40229885 TOOLS : 10801391.298666667 DATING : 854028.8303030303 NEWS_AND_MAGAZINES : 9549178.467741935 SPORTS : 3638640.1428571427 PRODUCTIVITY : 16787331.344927534 AUTO_AND_VEHICLES : 647317.8170731707 VIDEO_PLAYERS : 24727872.452830188 LIFESTYLE : 1437816.2687861272 FAMILY : 3695641.8198090694 TRAVEL_AND_LOCAL : 13984077.710144928 EVENTS : 253542.22222222222 LIBRARIES_AND_DEMO : 638503.734939759 MEDICAL : 120550.61980830671 ART_AND_DESIGN : 1986335.0877192982 EDUCATION : 1833495.145631068 BUSINESS : 1712290.1474201474 ENTERTAINMENT : 11640705.88235294 COMMUNICATION : 38456119.167247385 BOOKS_AND_REFERENCE : 8767811.894736841 WEATHER : 5074486.197183099 GAME : 15588015.603248259 FINANCE : 1387692.475609756 SHOPPING : 7036877.311557789 FOOD_AND_DRINK : 1924897.7363636363
*Analyzing Android free English apps by average number of installs:* Using the average number of installs among free English Android apps, we find a simialr pattern to the frequency of genres in the Android dataset. The 10 most frequently installed categories of free English apps is fairly balanced between entertainment and practical, with a slight bias towards entertainment apps.
Given that the goal here is to identify a genre of apps to build that will be popular on both Google Play and the Apple Store, we now have to look at the app genres that are popular on both platforms. The genres that overlap both top 10 lists include social/social networking, photo/video, and travel. However, apps in the books, reference, magazines, and finance genres are also popluar on both platforms. Before deciding on the genre to pursue, we're going to examine some of these categories in more depth.
In this section, we're going to look at the apps within some of the most popular genres on both the iOS and Android platforms.
#Examine the apps in the social genres on both platforms
for app in ios_final:
if app[-5] == 'Social Networking':
print(app[1], ':', app[5])
print('\n')
for app in android_final:
if app[1] == 'SOCIAL' and (app[5] == '1,000,000,000+'
or app[5] == '500,000,000+'
or app[5] == '100,000,000+'):
print(app[0], ':', app[5])
Facebook : 2974676 Pinterest : 1061624 Skype for iPhone : 373519 Messenger : 351466 Tumblr : 334293 WhatsApp Messenger : 287589 Kik : 260965 ooVoo – Free Video Call, Text and Voice : 177501 TextNow - Unlimited Text + Calls : 164963 Viber Messenger – Text & Call : 164249 Followers - Social Analytics For Instagram : 112778 MeetMe - Chat and Meet New People : 97072 We Heart It - Fashion, wallpapers, quotes, tattoos : 90414 InsTrack for Instagram - Analytics Plus More : 85535 Tango - Free Video Call, Voice and Chat : 75412 LinkedIn : 71856 Match™ - #1 Dating App. : 60659 Skype for iPad : 60163 POF - Best Dating App for Conversations : 52642 Timehop : 49510 Find My Family, Friends & iPhone - Life360 Locator : 43877 Whisper - Share, Express, Meet : 39819 Hangouts : 36404 LINE PLAY - Your Avatar World : 34677 WeChat : 34584 Badoo - Meet New People, Chat, Socialize. : 34428 Followers + for Instagram - Follower Analytics : 28633 GroupMe : 28260 Marco Polo Video Walkie Talkie : 27662 Miitomo : 23965 SimSimi : 23530 Grindr - Gay and same sex guys chat, meet and date : 23201 Wishbone - Compare Anything : 20649 imo video calls and chat : 18841 After School - Funny Anonymous School News : 18482 Quick Reposter - Repost, Regram and Reshare Photos : 17694 Weibo HD : 16772 Repost for Instagram : 15185 Live.me – Live Video Chat & Make Friends Nearby : 14724 Nextdoor : 14402 Followers Analytics for Instagram - InstaReport : 13914 YouNow: Live Stream Video Chat : 12079 FollowMeter for Instagram - Followers Tracking : 11976 LINE : 11437 eHarmony™ Dating App - Meet Singles : 11124 Discord - Chat for Gamers : 9152 QQ : 9109 Telegram Messenger : 7573 Weibo : 7265 Periscope - Live Video Streaming Around the World : 6062 Chat for Whatsapp - iPad Version : 5060 QQ HD : 5058 Followers Analysis Tool For Instagram App Free : 4253 live.ly - live video streaming : 4145 Houseparty - Group Video Chat : 3991 SOMA Messenger : 3232 Monkey : 3060 Down To Lunch : 2535 Flinch - Video Chat Staring Contest : 2134 Highrise - Your Avatar Community : 2011 LOVOO - Dating Chat : 1985 PlayStation®Messages : 1918 BOO! - Video chat camera with filters & stickers : 1805 Qzone : 1649 Chatous - Chat with new people : 1609 Kiwi - Q&A : 1538 GhostCodes - a discovery app for Snapchat : 1313 Jodel : 1193 FireChat : 1037 Google Duo - simple video calling : 1033 Fiesta by Tango - Chat & Meet New People : 885 Google Allo — smart messaging : 862 Peach — share vividly : 727 Hey! VINA - Where Women Meet New Friends : 719 Battlefield™ Companion : 689 All Devices for WhatsApp - Messenger for iPad : 682 Chat for Pokemon Go - GoChat : 500 IAmNaughty – Dating App to Meet New People Online : 463 Qzone HD : 458 Zenly - Locate your friends in realtime : 427 League of Legends Friends : 420 豆瓣 : 407 Candid - Speak Your Mind Freely : 398 知乎 : 397 Selfeo : 366 Fake-A-Location Free ™ : 354 Popcorn Buzz - Free Group Calls : 281 Fam — Group video calling for iMessage : 279 QQ International : 274 Ameba : 269 SoundCloud Pulse: for creators : 240 Tantan : 235 Cougar Dating & Life Style App for Mature Women : 213 Rawr Messenger - Dab your chat : 180 WhenToPost: Best Time to Post Photos for Instagram : 158 Inke—Broadcast an amazing life : 147 Mustknow - anonymous video Q&A : 53 CTFxCmoji : 39 Lobi : 36 Chain: Collaborate On MyVideo Story/Group Video : 35 botman - Real time video chat : 7 BestieBox : 0 MATCH ON LINE chat : 0 niconico ch : 0 LINE BLOG : 0 bit-tube - Live Stream Video Chat : 0 Facebook : 1,000,000,000+ Facebook Lite : 500,000,000+ Tumblr : 100,000,000+ Pinterest : 100,000,000+ Google+ : 1,000,000,000+ Badoo - Free Chat & Dating App : 100,000,000+ Tango - Live Video Broadcast : 100,000,000+ Instagram : 1,000,000,000+ Snapchat : 500,000,000+ LinkedIn : 100,000,000+ Tik Tok - including musical.ly : 100,000,000+ BIGO LIVE - Live Stream : 100,000,000+ VK : 100,000,000+
Based on the apps in the social genres, it appears that this genre is heavily dominated by a handful of the big social platforms, including Facebook, Pinterest, LinkedIn, Tumblr, etc. Given that the popularity of this genre is heavily skewed by a handful of major social platforms, it does not appear that this a viable genre to recommend. First, it may only be popular as a result of the most common apps and these apps are heavily used and may be difficult to compete with.
#Examine the apps in the photo and video genres on both platforms
for app in ios_final:
if app[-5] == 'Photo & Video':
print(app[1], ':', app[5])
print('\n')
for app in android_final:
if app[1] == 'PHOTOGRAPHY' and (app[5] == '1,000,000,000+'
or app[5] == '500,000,000+'
or app[5] == '100,000,000+'):
print(app[0], ':', app[5])
Instagram : 2161558 Snapchat : 323905 YouTube - Watch Videos, Music, and Live Streams : 278166 Pic Collage - Picture Editor & Photo Collage Maker : 123433 Funimate video editor: add cool effects to videos : 123268 musical.ly - your video social network : 105429 Photo Collage Maker & Photo Editor - Live Collage : 93781 Vine Camera : 90355 Google Photos - unlimited photo and video storage : 88742 Flipagram : 79905 Mixgram - Picture Collage Maker - Pic Photo Editor : 54282 Shutterfly: Prints, Photo Books, Cards Made Easy : 51427 Pic Jointer – Photo Collage, Camera Effects Editor : 51330 Color Pop Effects - Photo Editor & Picture Editing : 45320 Photo Grid - photo collage maker & photo editor : 40531 iSwap Faces LITE : 39722 MOLDIV - Photo Editor, Collage & Beauty Camera : 39501 Photo Editor by Aviary : 39501 Photo Lab: Picture Editor, effects & fun face app : 34585 Rookie Cam - Photo Editor & Filter Camera : 33921 FotoRus -Camera & Photo Editor & Pic Collage Maker : 32558 PicsArt Photo Studio: Collage Maker & Pic Editor : 29078 Quik – GoPro Video Editor to edit clips with music : 28654 Splice - Video Editor + Movie Maker by GoPro : 28189 FreePrints – Photos Delivered : 26060 Triller - Music Video & Film Maker : 25683 Ghost Lens+Scary Photo Video Edit&Collage Maker : 18316 Camera360 - Selfie Filter Camera, Photo Editor : 16729 InstaMag - Free Pic and Photo Collage Maker : 16221 Over— Edit Photos, Add Text & Captions to Pictures : 16221 Photo Transfer App - Easy backup of photos+videos : 15654 InstaSize: Photo Editor, Picture Effects & Collage : 15605 Prisma: Photo Editor, Art Filters Pic Effects : 15060 Filterra – Photo Editor, Effects for Pictures : 14744 YouCam Makeup: Magic Makeup Selfie Cam : 14188 MSQRD — Live Filters & Face Swap for Video Selfies : 12982 Artisto – Video and Photo Editor with Art Filters : 12963 InShot Video Editor Music, No Crop, Cut : 12779 Layout from Instagram : 12616 Face Swap App- Funny Face Changer Photo Effects : 11977 Moments - private albums with friends and family : 11955 VSCO : 11174 Retrica - Selfie Camera with Filter, Sticker & GIF : 11021 VivaVideo - Best Video Editor & Photo Movie Maker : 10618 Prime Photos from Amazon : 10511 Canva - Graphic Design & Photo Editing : 9114 Photo Editor- : 9095 Snapseed : 8683 You Doodle - draw on photos & pictures, add text : 8520 PIP Camera-Selfie Cam&Pic Collage&Photo Editor : 8454 BeautyPlus - Selfie Camera for a Beautiful Image : 7503 Baby Story - Pregnancy Pics Baby Milestones Photo : 6700 Capture - Control Your GoPro Camera - Share Video : 6542 Meitu : 6478 Visage makeup editor plus photo teeth whitener : 5767 Video & TV Cast for Chromecast: Best Browser to cast and stream webvideos and local videos on TV & Displays : 5676 Adobe Photoshop Mix - Cut out, combine, create : 5253 Collageable - Photo Collage Maker, Pic Grid Free : 5112 Bazaart Photo Editor Pro and Picture Collage Maker : 4909 InstaBeauty -Camera&Photo Editor&Pic Collage Maker : 4818 YouCam Perfect - Photo & Selfie Editor : 4293 PHHHOTO - Look Alive : 4280 MuseCam - Edit Photos & Manual Camera : 4267 VR Tube - Virtual Reality 360 Video Player : 4142 Fyuse - 3D Photos : 4126 MakeupPlus - Natural, Professional Makeup Looks : 3987 LINE Camera - Photo editor, Animated Stamp, Filter : 3978 Printicular Print Photos - 1 Hour Pickup : 3909 Lumyer - augmented reality camera effects : 3896 KODAK Kiosk Connect App : 3711 Cool Wallpapers for Pokemon : 3694 Pro Editor - Video Maker for FaceBook & Youtube : 3668 Lomotif Music Video Editor - Add Music & Effects! : 3507 Epson iPrint : 2838 YouCam Fun - Live Selfie Video Filters : 2522 A Color Story : 2436 Boomerang from Instagram : 2373 B612 - Trendy Filters, Selfiegenic Camera : 2275 Polarr Photo Editor - Photo Editing Tools for All : 2246 Retouch Vogue - Facetune Wrinkles & Pimples Makeup : 2235 Kanvas - Express Yourself : 2177 Easy Save - Repost your Instagram Photos & Videos : 2159 Meitu HD : 2150 Pixlr - Photo Collages, Effects, Overlays, Filters : 2099 Patternator Pattern Maker Backgrounds & Wallpapers : 2092 BeautyCam - AR Carnie selfie : 2082 GIPHY. The GIF Search Engine for All the GIFs : 2069 Adobe Photoshop Lightroom for iPad : 2005 SuperPhoto - Photo Effects & Filters : 1952 Solo Selfie : 1799 Felt: Birthday & Greeting Cards & Thank You Card : 1724 Perfect Image - Pic Collage Maker, Add Text to Photo, Cool Picture Editor : 1646 InstaBoard for Instagram - photos & videos repost : 1571 Adobe Photoshop Lightroom for iPhone : 1494 PhotoScan - scanner by Google Photos : 1421 RealTimes: Video Maker : 1274 Meipai : 1190 POTO - Photo Collage Maker : 1149 SNOW - Selfie, Motion sticker, Fun camera : 1115 Bestie-Beauty Camera 360 & Portrait Selfie Editor : 1035 Facetune 2 : 1009 Pitu : 968 intoLive - Custom Live Photos wallpaper maker : 938 LOL Movie: Change your face + voice! : 849 Camcorder - Record VHS Home Videos : 830 Anime Power FX : 807 Squaready for Video - Convert Rectangle Movie Clip into Square Shape for Instagram : 778 Canon PRINT Inkjet/SELPHY : 689 Microsoft Pix Camera : 678 Kwai - Share your video moments : 668 Polaroid Print App - ZIP : 631 Photo Quilt - Auto Collage Maker : 599 Cymera - Photo & Beauty Editor & Collage : 523 FACIE : 514 Photo Editing Effects & Collage Maker - Effectshop : 422 Pic-it Collage - Photo Collage Maker and Editor : 415 Candy Camera : 397 Microsoft Selfie : 375 Color Pop Free - Selective Color Splash Effects and Black & White Photography Editor : 352 SelfieCity : 252 InstaSave for Instagram - Download & Repost your own Videos & Photos for Free : 243 CATCHY Photos-Easter Bunny, Tooth Fairy and more.. : 228 SW/NG - Living Photos. Memories that Swing. : 222 SlideStory - Create a slideshow movie and a snap video : 220 April - Layouts, Photo Collage, and Poster Maker : 165 PopCam Photo : 160 Foodie - Delicious Camera for Food : 144 FreeVRPlayer : 134 Confetti - Geofilter Design Maker for Snapchat : 120 Philm-Video&Photo Editor,REAL-TIME Magic Filter : 103 Digital Domain : 102 Homido 360 VR player : 100 Best 9 for Instagram : 88 VR Video World - Virtual Reality : 88 FilmStory - For All Your Video Editing Needs : 66 GIFYme - Create video loops and gifs with amazing filters for Whatsapp and Instagram : 65 Kiosk Photo Transfer by Fujifilm : 58 Pikazo – AI art that YOU control : 56 lollicam - photo, video, and selfie camera : 51 LOOKS - Real Makeup Camera : 25 C CHANNEL -Watch tips & tricks videos for girls : 21 in-capturing moments in life : 16 Everfilter - transform your photos into artworks : 15 GoSnaps - Share Screenshots for Pokémon GO : 12 NightShooting : 9 MixChannel : 6 Simple Camera - Fast Minimal Design : 3 SwapperFace - Face Swap Free, Live Mask Effects : 2 LINE Moments - Capture Your Fun Moments : 1 Video speed editor - VBooster : 1 Video Smith - A Powerful video editing tool set : 1 MeiCam - Video Production Master : 0 Instant X - Take instant-camera-like photo with double exposure and bulb mode : 0 EOPAN : 0 StageCameraHD : 0 Pictalive for Live Photos - Create from videos : 0 BlurEffect-Blur Photo & Video, Hide Face : 0 camera for filter : 0 Emojil - original emoji stamp, decoration camera : 0 CelebrityDiagnosis! : 0 B612 - Beauty & Filter Camera : 100,000,000+ YouCam Makeup - Magic Selfie Makeovers : 100,000,000+ Sweet Selfie - selfie camera, beauty cam, photo edit : 100,000,000+ Google Photos : 1,000,000,000+ Retrica : 100,000,000+ Photo Editor Pro : 100,000,000+ BeautyPlus - Easy Photo Editor & Selfie Camera : 100,000,000+ PicsArt Photo Studio: Collage Maker & Pic Editor : 100,000,000+ Photo Collage Editor : 100,000,000+ Z Camera - Photo Editor, Beauty Selfie, Collage : 100,000,000+ PhotoGrid: Video & Pic Collage Maker, Photo Editor : 100,000,000+ Candy Camera - selfie, beauty camera, photo editor : 100,000,000+ YouCam Perfect - Selfie Photo Editor : 100,000,000+ Camera360: Selfie Photo Editor with Funny Sticker : 100,000,000+ S Photo Editor - Collage Maker , Photo Collage : 100,000,000+ AR effect : 100,000,000+ Cymera Camera- Photo Editor, Filter,Collage,Layout : 100,000,000+ LINE Camera - Photo editor : 100,000,000+ Photo Editor Collage Maker Pro : 100,000,000+
Within the photo and video genres, Instragram, Snapchat, and YouTube dominate the Apple Store. After those apps, the remaining apps in the Apple Store and the photo apps on Google Play are all various picture modification or picture sharing apps. This is a ganre that may be worth exploring for our company.
#Examine the apps in the photo and video genres on both platforms
for app in ios_final:
if app[-5] == 'Travel':
print(app[1], ':', app[5])
print('\n')
for app in android_final:
if app[1] == 'TRAVEL_AND_LOCAL' and (app[5] == '1,000,000,000+'
or app[5] == '500,000,000+'
or app[5] == '100,000,000+'):
print(app[0], ':', app[5])
Google Earth : 446185 Yelp - Nearby Restaurants, Shopping & Services : 223885 GasBuddy : 145549 TripAdvisor Hotels Flights Restaurants : 56194 Uber : 49466 Lyft : 46922 HotelTonight - Great Deals on Last Minute Hotels : 32341 Hotels & Vacation Rentals by Booking.com : 31261 Southwest Airlines : 30552 Airbnb : 22302 Expedia Hotels, Flights & Vacation Package Deals : 10278 Fly Delta : 8094 Hopper - Predict, Watch & Book Flights : 6944 United Airlines : 5748 Skiplagged — Actually Cheap Flights & Hotels : 1851 Viator Tours & Activities : 1839 iExit Interstate Exit Guide : 1798 Gogo Entertainment : 1482 Google Street View : 1450 Webcams – EarthCam : 912 HISTORY Here : 685 DB Navigator : 512 Mobike - Dockless Bike Share : 494 MiFlight™ – Airport security line wait times at checkpoints for domestic and international travelers : 493 BlaBlaCar - Trusted Carpooling : 397 Six Flags : 353 Google Trips – Travel planner : 329 Voyages-sncf.com : book train and bus tickets : 268 Trainline UK: Live Train Times, Tickets & Planner : 248 Urlaubspiraten : 188 铁路12306 : 177 Ryanair - Cheapest Fares : 175 飞猪 : 154 Fleet Air Travel Guide & Airport Directory : 105 FlixBus - bus travel in Europe : 92 Ab in den Urlaub – Pauschalreisen günstig buchen : 22 SNCF : 7 skyticket - Reserve Best Valued Air Tickets : 0 Fluege.de - Finde den billigsten Flug : 0 VoiceTra(Voice Translator) : 0 Booking.com Travel Deals : 100,000,000+ TripAdvisor Hotels Flights Restaurants Attractions : 100,000,000+ Maps - Navigate & Explore : 1,000,000,000+ Google Street View : 1,000,000,000+ Google Earth : 100,000,000+
Like the social apps, the travel genres are dominated by major players, including Google, Uber, Lyft, TripAdvisor, etc. While a unique approach to travel could be a worthwhile app to pursue, it would be challenging to break into this genre.
#Examine the apps in the photo and video genres on both platforms
for app in ios_final:
if app[-5] == 'Finance':
print(app[1], ':', app[5])
print('\n')
for app in android_final:
if app[1] == 'FINANCE' and (app[5] == '1,000,000,000+'
or app[5] == '500,000,000+'
or app[5] == '100,000,000+'):
print(app[0], ':', app[5])
Chase Mobile℠ : 233270 Mint: Personal Finance, Budget, Bills & Money : 232940 Bank of America - Mobile Banking : 119773 PayPal - Send and request money safely : 119487 Credit Karma: Free Credit Scores, Reports & Alerts : 101679 Capital One Mobile : 56110 Citi Mobile® : 48822 Wells Fargo Mobile : 43064 Chase Mobile : 34322 Square Cash - Send Money for Free : 23775 Capital One for iPad : 21858 Venmo : 21090 USAA Mobile : 19946 TaxCaster – Free tax refund calculator : 17516 Amex Mobile : 11421 TurboTax Tax Return App - File 2016 income taxes : 9635 Bank of America - Mobile Banking for iPad : 7569 Wells Fargo for iPad : 2207 Stash Invest: Investing & Financial Education : 1655 Digit: Save Money Without Thinking About It : 1506 IRS2Go : 1329 Capital One CreditWise - Credit score and report : 1019 U by BB&T : 790 Paribus - Rebates When Prices Drop : 768 KeyBank Mobile : 623 VyStar Mobile Banking for iPhone : 434 Sparkasse - Your mobile branch : 77 VyStar Mobile Banking for iPad : 57 Zaim : 44 Ma Banque : 17 Lloyds Bank Mobile Banking : 17 Suica : 10 Halifax Mobile Banking : 8 La Banque Postale : 8 币优铺 : 0 Impots.gouv : 0 Google Pay : 100,000,000+
Within the finance genres, Google Pay is the only dominate app on the Android platform. While on iOS, there are a multitude of apps, but none are clear dominant apps like we see in the social genres. Given this, we recommend building an app in the finance genre. These are common apps on both platforms and rank high on popularity. While Google Pay