Google Play and App store Engaging Apps

For this project our aim is to find what type of apps that attract more users.we're working as data analysts for a company that builds Android and iOS mobile apps that are free to download and install.

The main source of revenue consists of in-app ads. this means the more users that see and engage with the ads in our apps, the better. our goal for this project is to analyze data to help our developers understand what type of apps are likely to attract more users.

First we need to open the data sets and then explore it.

In [1]:
from csv import reader

# for App Store
opened_file1 = open('AppleStore.csv')
read_file1 = reader(opened_file1)
ios = list(read_file1)
ios_header = ios[0]
ios = ios[1:]

# for Google Play Store
opened_file2 = open('googleplaystore.csv')
read_file2 = reader(opened_file2)
android = list(read_file2)
android_header = android[0]
android = android[1:]

To explore the two data sets we created a function named explore_data() that we can repeatedly use to print rows in a readable way.

In [2]:
def explore_data(dataset, start, end, rows_columns= False) :
    dataset_slice = dataset[start:end]
    for row in dataset_slice :
        print(row)
        print('\n')
    if rows_columns :
        print('number of rows:', len(dataset))
        print('number of columns:', len(dataset[0]))
In [3]:
print(ios_header) 
print('\n')
explore_data(ios, 0, 3, True) 
['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']


['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
In [4]:
print(android_header)
print('\n')
explore_data(android, 0, 3, True)
['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver']


['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

The Google Play data set has a dedicated discussion section, and we can see that one of the discussions describes an error for a row with index 10472

In [5]:
print(android[10472])
['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']

The Google Play data set has a dedicated discussion section, and we can see that one of the discussions describes an error for a row with index 10472

In [6]:
## another approach for getting the defected row
for row in android :
    if len(row) != len(android_header) :
        print(row)
        print('\n')
        print(android.index(row))
print('\n')   
print(android_header)
['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']


10472


['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver']
In [7]:
print(len(android))
del android[10472]
print(len(android))
10841
10840

Removing Duplicate Entries

If you explore the Google Play data set long enough or look at the discussions section, you'll notice some apps have duplicate entries. For instance, Instagram has four entries :

In [8]:
for app in android :
    name = app[0]
    if name == 'Instagram' :
        print(app)
        print('\n')
['Instagram', 'SOCIAL', '4.5', '66577313', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device']


['Instagram', 'SOCIAL', '4.5', '66577446', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device']


['Instagram', 'SOCIAL', '4.5', '66577313', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device']


['Instagram', 'SOCIAL', '4.5', '66509917', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device']


In [9]:
duplicate_apps = []
unique_apps = []
for app in android:
    name = app[0]
    if name in unique_apps :
        duplicate_apps.append(name) 

    else :
        unique_apps.append(name)

print('Number of duplicate apps:', len(duplicate_apps)) 
print('\n')
print('Examples of duplicate apps:', duplicate_apps[:15])
print('\n')
print('Number of unique apps:', len(unique_apps)) # this is the actual number of apps we should analyze. the apps we s
Number of duplicate apps: 1181


Examples of duplicate apps: ['Quick PDF Scanner + OCR FREE', 'Box', 'Google My Business', 'ZOOM Cloud Meetings', 'join.me - Simple Meetings', 'Box', 'Zenefits', 'Google Ads', 'Google My Business', 'Slack', 'FreshBooks Classic', 'Insightly CRM', 'QuickBooks Accounting: Invoicing & Expenses', 'HipChat - Chat Built for Teams', 'Xero Accounting Software']


Number of unique apps: 9659

We don't want to count certain apps more than once when we analyze data, so we need to remove the duplicate entries and keep only one entry per app. One thing we could do is remove the duplicate rows randomly, but we could probably find a better way.

If you examine the rows we printed for the Instagram app, the main difference happens on the fourth position of each row, which corresponds to the number of reviews. The different numbers show the data was collected at different times.

The higher the number of reviews, the more recent the data should be so we'll only keep the row with the highest number of reviews and remove the other entries for any given app.

In [10]:
reviews_max = {}
for app in android :
    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
        
print('Actual length:', len(reviews_max))  
        
        
Actual length: 9659

Now, let's use the reviews_max dictionary to remove the duplicates. For the duplicate cases, we'll only keep the entries with the highest number of reviews. In the code cell below:

  • We start by initializing two empty lists, android_clean and already_added.
  • We loop through the android data set, and for every iteration:
    • We isolate the name of the app and the number of reviews.
    • We add the current row (app) to the android_clean list, and the app name (name) to the already_added list if:
      • The number of reviews of the current app matches the number of reviews of that app as described in the reviews_max dictionary;and
      • The name of the app is not already in the already_added list. We need to add this supplementary condition to account for those cases where the highest number of reviews of a duplicate app is the same for more than one entry (for example, the Box app has three entries, and the number of reviews is the same). If we just check for reviews_max[name] == n_reviews, we'll still end up with duplicate entries for some apps.
In [11]:
android_clean = []
already_added = []

for app in android:
    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)
In [12]:
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

Removing Non English Apps

we use English for the apps we develop at our company if we explore the data long enough, we'll find that both data sets have apps with names that suggest they are not directed toward an English-speaking audience. We're not interested in keeping these apps, so we'll remove them.One way to go about this is to remove each app with a name containing a symbol that is not commonly used in English text — English text usually includes letters from the English alphabet, numbers composed of digits from 0 to 9, punctuation marks (., !, ?, ;), and other symbols (+, *, /).

Each character we use in a string has a corresponding number associated with it. The numbers corresponding to the characters we commonly use in an English text are all in the range 0 to 127, according to the ASCII (American Standard Code for Information Interchange) system and we can get the corresponding number of each character using the ord() built-in function.

We built this function below, and we use the built-in ord() function to find out the corresponding encoding number of each character.

In [13]:
def detect(string):
    
    for character in string :
        if ord(character) > 127 :
            return False
    return True

print(detect('Instagram'))
print(detect('爱奇艺PPS -《欢乐颂2》电视剧热播'))
True
False

The function seems to work fine but we found that there are some english app names use emoji or other symbols like ™ that fall outside the ASCII range and this will lead to remove useful apps if we use the function in its current form.

In [14]:
print(detect('Docs To Go™ Free Office Suite'))
print(detect('Instachat 😜'))
False
False

To minimize the impact of data loss, we'll only remove an app if its name has more than three characters with corresponding numbers falling outside the ASCII range.This means all English apps with up to three emoji or other special characters will still be labeled as English.

We will do this by editing the function we built above (detect()).

In [15]:
def detect(string) :
    non_ascii = 0
    for character in string :
        if ord(character) > 127 :
            non_ascii += 1
        
    if non_ascii> 3 :
        return False
    else :
        return True
    
print(detect('Docs To Go™ Free Office Suite'))
print(detect('Instachat 😜'))
print(detect('爱奇艺PPS -《欢乐颂2》电视剧热播'))
            
            
            
        
True
True
False
In [16]:
android_english = []
ios_english = []
for app in android_clean :
    name = app[0]
    if detect(name) :
        android_english.append(app)
        
        
for app in ios :
    name = app[1]
    if detect(name) :
        ios_english.append(app)
        
        
explore_data(android_english, 0, 3, True)
print('\n')
explore_data(ios_english, 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

We can see that we're left with 9614 Android apps and 6183 iOS apps.

Isolate Free Apps

As we mentioned in the introduction, we only build apps that are free to download and install, and our main source of revenue consists of in-app ads. Our data sets contain both free and non-free apps; we'll need to isolate only the free apps for our analysis.

In [17]:
android_free = []  # the final dataset
ios_free = []      # the final dataset

for app in android_english :
    price = app[7]
    if '$' in price :
        price = price[1:]
    if float(price) == 0 :
        android_free.append(app)
        
for app in ios_english :
    price = float(app[4])
    if price == 0 :
        ios_free.append(app)       
        
print(len(android_free)) 
print(len(ios_free)) 
8864
3222

We're left with 8864 Android apps and 3222 iOS apps, which should be enough for our analysis.

Data analysis

Part One

As we mentioned in the introduction, our aim is to determine the kinds of apps that are likely to attract more users because our revenue is highly influenced by the number of people using our apps.

To minimize risks , our validation strategy for an app idea is :

  1. Build a minimal Android version of the app, and add it to Google Play.
  2. If the app has a good response from users, we develop it further.
  3. If the app is profitable after six months, we build an iOS version of the app and add it to the App Store.

Because our end goal is to add the app on both Google Play and the App Store, we need to find app profiles that are successful on both markets.

We will start the analysis by asking ourselves what are the most common genres for each market.To do this we will build frequency table for prime genre column of the App store data set and the genres and category columns of the Google play store data set.

Part Two

We'll build two functions we can use to analyze the frequency tables:

  • One function to generate frequency tables that show percentages.
  • Another function that we can use to display the percentages in a descending order.
In [18]:
def freq_table(dataset, index) :
    frequency = {}
    for row in dataset :
        value = row[index]
        if value in frequency :
            frequency[value] += 1
        else :
            frequency[value] = 1
            
    frequency_percentage = {}
    for value in frequency :
        percentage = (frequency[value]/ len(dataset)) * 100
        frequency_percentage[value] = percentage
        
    return frequency_percentage  
In [19]:
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])
        

Part Three

We start by examining the category and generes columns of the Play store.

In [20]:
# for play store
display_table(android_free, 1)  # category
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

After analyzing the frequency table of the category column in Google play store data set we see that most of the apps are designed for pracical purposes (family, tools, business, lifestyle, productivity, etc). However, if we investigate this further, we can see that the family category (which accounts for almost 19% of the apps) means mostly games for kids.

In [21]:
# for play store
display_table(android_free, 9) # genres
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

We see that the frequency table of the genres column also is like the category column as both of them most of their apps are designed for practical purposes. we notice also that the Genres column is much more granular (it has more categories). We're only looking for the bigger picture at the moment, so we'll only work with the Category column moving forward.

In [22]:
# for app store

display_table(ios_free, -5)  # prime genres
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

We can see that among free english apps more than a half (58.16%) are games. Entertainment apps are close to 8% followed by photo and video apps which are close to 5%. Only 3.66% of the apps are designed for education, followed by social networking apps which amount for 3.29% of the apps in our data set.

The general impression is that app store apps (at least in free english data set) seem as if the most of them is designed for entertainment(games, photo and video, social networking, sports, music) and the apps for practical purpose is rare. However the fact that fun apps are the most numerous doesn't also imply that they also have the greatest number of users.

Up to this point, we found that the App Store is dominated by apps designed for fun, while Google Play shows a more balanced landscape of both practical and for-fun apps. Now we'd like to get an idea about the kind of apps that have most users.

Most Popular Apps by Genre on the App Store

Now, we'd like to get an idea about the kind of apps with the most users. To do so we need to calculate the average number of installs for each app genre.

For Google Play Store we will use the installs column. As the same information is missing for App Store we will use rating_count_tot column instead.

To calculate the average number of user ratings per app genre, we will need to :

  • Isolate the apps of each genre.
  • Sum up the user ratings for the apps of that genre.
  • Divide the sum by the number of apps belonging to that genre (not by the total number of apps).
In [23]:
genre_frequency = freq_table(ios_free, -5)

for genre in genre_frequency :
    total = 0      # This variable will store the sum of user ratings specific to each genre. 
    len_genre = 0  # This variable will store the number of apps specific to each genre.
    
    for app in ios_free :
        genre_app = app[-5]
        if genre_app == genre :
            n_ratings = float(app[5])
            total += n_ratings
            len_genre += 1
    
    avg_ratings = total / len_genre
    print(genre, ':', avg_ratings)
    
    
Social Networking : 71548.34905660378
Photo & Video : 28441.54375
Games : 22788.6696905016
Music : 57326.530303030304
Reference : 74942.11111111111
Health & Fitness : 23298.015384615384
Weather : 52279.892857142855
Utilities : 18684.456790123455
Travel : 28243.8
Shopping : 26919.690476190477
News : 21248.023255813954
Navigation : 86090.33333333333
Lifestyle : 16485.764705882353
Entertainment : 14029.830708661417
Food & Drink : 33333.92307692308
Sports : 23008.898550724636
Book : 39758.5
Finance : 31467.944444444445
Education : 7003.983050847458
Productivity : 21028.410714285714
Business : 7491.117647058823
Catalogs : 4004.0
Medical : 612.0

Despite games being the most common apps in the App store it does not have the highest average number of user ratings per app. the genres that have the average number of user rating per app are Navigation with 86090 averge, Reference with 74942 average, and Social Networking with 71548 average.

Let's look deeper into Navigation, Reference and Social Networking categories.

In [24]:
for app in ios_free :
    if app[-5] == 'Navigation' :
        print(app[1], ':', app[5])  # print name and number of ratings
Waze - GPS Navigation, Maps & Real-time Traffic : 345046
Google Maps - Navigation & Transit : 154911
Geocaching® : 12811
CoPilot GPS – Car Navigation & Offline Maps : 3582
ImmobilienScout24: Real Estate Search in Germany : 187
Railway Route Search : 5

For the Navigation genre in the app store we see that the Waze app dominates the number of ratings (has the most users) then Google Maps comes after.

In [25]:
for app in ios_free :
    if app[-5] == 'Reference' :
        print(app[1], ':', app[5])
    
Bible : 985920
Dictionary.com Dictionary & Thesaurus : 200047
Dictionary.com Dictionary & Thesaurus for iPad : 54175
Google Translate : 26786
Muslim Pro: Ramadan 2017 Prayer Times, Azan, Quran : 18418
New Furniture Mods - Pocket Wiki & Game Tools for Minecraft PC Edition : 17588
Merriam-Webster Dictionary : 16849
Night Sky : 12122
City Maps for Minecraft PE - The Best Maps for Minecraft Pocket Edition (MCPE) : 8535
LUCKY BLOCK MOD ™ for Minecraft PC Edition - The Best Pocket Wiki & Mods Installer Tools : 4693
GUNS MODS for Minecraft PC Edition - Mods Tools : 1497
Guides for Pokémon GO - Pokemon GO News and Cheats : 826
WWDC : 762
Horror Maps for Minecraft PE - Download The Scariest Maps for Minecraft Pocket Edition (MCPE) Free : 718
VPN Express : 14
Real Bike Traffic Rider Virtual Reality Glasses : 8
教えて!goo : 0
Jishokun-Japanese English Dictionary & Translator : 0

For the Reference genre in the App store we see that the Bible and the Dictionary apps skew up the number of ratings.

In [26]:
for app in ios_free :
    if app[-5] == 'Social Networking' :
        print(app[1], ':', 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

The same pattern applies to social networking apps, where the average number is heavily influenced by a few giants like Facebook, Pinterest, Skype, etc. Same applies to music apps, where a few big players like Pandora, Spotify, and Shazam heavily influence the average number.

As we mentioned before that the majority of the apps in the App store are for fun not practical purposes. It could be promising if we create a Refrence app and add different features to get Refrence_Social Networking app (hybrid app).

One thing we could do is take another popular book and turn it into an app and add community feature to let the users discuss the book between each other and make their fanart.

Most Popular Apps by Genre on Google play

For Google play store we have data about the number of installs in installs column. The install numbers don't seem precise enough — we can see that most values are open-ended (100+, 1,000+, 5,000+, etc.) but we don't need perfect precision with respect to the number of users. So we'll consider that an app with 100,000+ installs has 100,000 installs, and an app with 1,000,000+ installs has 1,000,000 installs, and so on.

In [27]:
display_table(android_free, 5)
1,000,000+ : 15.726534296028879
100,000+ : 11.552346570397113
10,000,000+ : 10.548285198555957
10,000+ : 10.198555956678701
1,000+ : 8.393501805054152
100+ : 6.915613718411552
5,000,000+ : 6.825361010830325
500,000+ : 5.561823104693141
50,000+ : 4.7721119133574
5,000+ : 4.512635379061372
10+ : 3.5424187725631766
500+ : 3.2490974729241873
50,000,000+ : 2.3014440433213
100,000,000+ : 2.1322202166064983
50+ : 1.917870036101083
5+ : 0.78971119133574
1+ : 0.5076714801444043
500,000,000+ : 0.2707581227436823
1,000,000,000+ : 0.22563176895306858
0+ : 0.04512635379061372
0 : 0.01128158844765343
In [28]:
categories_frequency = freq_table(android_free, 1)

for category in categories_frequency:
    total = 0
    len_category = 0
    for app in android_free:
        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)
ART_AND_DESIGN : 1986335.0877192982
AUTO_AND_VEHICLES : 647317.8170731707
BEAUTY : 513151.88679245283
BOOKS_AND_REFERENCE : 8767811.894736841
BUSINESS : 1712290.1474201474
COMICS : 817657.2727272727
COMMUNICATION : 38456119.167247385
DATING : 854028.8303030303
EDUCATION : 1833495.145631068
ENTERTAINMENT : 11640705.88235294
EVENTS : 253542.22222222222
FINANCE : 1387692.475609756
FOOD_AND_DRINK : 1924897.7363636363
HEALTH_AND_FITNESS : 4188821.9853479853
HOUSE_AND_HOME : 1331540.5616438356
LIBRARIES_AND_DEMO : 638503.734939759
LIFESTYLE : 1437816.2687861272
GAME : 15588015.603248259
FAMILY : 3695641.8198090694
MEDICAL : 120550.61980830671
SOCIAL : 23253652.127118643
SHOPPING : 7036877.311557789
PHOTOGRAPHY : 17840110.40229885
SPORTS : 3638640.1428571427
TRAVEL_AND_LOCAL : 13984077.710144928
TOOLS : 10801391.298666667
PERSONALIZATION : 5201482.6122448975
PRODUCTIVITY : 16787331.344927534
PARENTING : 542603.6206896552
WEATHER : 5074486.197183099
VIDEO_PLAYERS : 24727872.452830188
NEWS_AND_MAGAZINES : 9549178.467741935
MAPS_AND_NAVIGATION : 4056941.7741935486

On first impression we see that the categories that have the highest average number of installs is COMMUNICATION with 38456119, VIDEO_PLAYERS with 24727872, SOCIAL with 23253652 , PHOTOGRAPHY, GAME, Travel_AND_LOCAL, TOOLS, NEWS_AND_MAGAZINES and BOOKS_AND_REFERENCE. So let's dive deeper into those categories.

Let's build a function that displays app name for each category and its number of installs.

In [29]:
def app_installs(category) :
    
    for app in android_free :
        category_app = app[1]
        app_name = app[0]
        if category_app == category:            
            n_installs = (app[5])
            n_installs = n_installs.replace(',', '')
            n_installs = n_installs.replace('+', '')
            n_installs = float(n_installs)
    
            print(app_name, ':', app[5])
    
        
In [30]:
app_installs('COMMUNICATION')
WhatsApp Messenger : 1,000,000,000+
Messenger for SMS : 10,000,000+
My Tele2 : 5,000,000+
imo beta free calls and text : 100,000,000+
Contacts : 50,000,000+
Call Free – Free Call : 5,000,000+
Web Browser & Explorer : 5,000,000+
Browser 4G : 10,000,000+
MegaFon Dashboard : 10,000,000+
ZenUI Dialer & Contacts : 10,000,000+
Cricket Visual Voicemail : 10,000,000+
TracFone My Account : 1,000,000+
Xperia Link™ : 10,000,000+
TouchPal Keyboard - Fun Emoji & Android Keyboard : 10,000,000+
Skype Lite - Free Video Call & Chat : 5,000,000+
My magenta : 1,000,000+
Android Messages : 100,000,000+
Google Duo - High Quality Video Calls : 500,000,000+
Seznam.cz : 1,000,000+
Antillean Gold Telegram (original version) : 100,000+
AT&T Visual Voicemail : 10,000,000+
GMX Mail : 10,000,000+
Omlet Chat : 10,000,000+
My Vodacom SA : 5,000,000+
Microsoft Edge : 5,000,000+
Messenger – Text and Video Chat for Free : 1,000,000,000+
imo free video calls and chat : 500,000,000+
Calls & Text by Mo+ : 5,000,000+
free video calls and chat : 50,000,000+
Skype - free IM & video calls : 1,000,000,000+
Who : 100,000,000+
GO SMS Pro - Messenger, Free Themes, Emoji : 100,000,000+
Messaging+ SMS, MMS Free : 1,000,000+
chomp SMS : 10,000,000+
Glide - Video Chat Messenger : 10,000,000+
Text SMS : 10,000,000+
Talkray - Free Calls & Texts : 10,000,000+
LINE: Free Calls & Messages : 500,000,000+
GroupMe : 10,000,000+
mysms SMS Text Messaging Sync : 1,000,000+
2ndLine - Second Phone Number : 1,000,000+
Google Chrome: Fast & Secure : 1,000,000,000+
Firefox Browser fast & private : 100,000,000+
Ninesky Browser : 1,000,000+
Dolphin Browser - Fast, Private & Adblock🐬 : 50,000,000+
UC Browser - Fast Download Private & Secure : 500,000,000+
Ghostery Privacy Browser : 1,000,000+
InBrowser - Incognito Browsing : 1,000,000+
Lightning Web Browser : 500,000+
Web Browser : 500,000+
Contacts+ : 10,000,000+
ExDialer - Dialer & Contacts : 10,000,000+
PHONE for Google Voice & GTalk : 1,000,000+
Safest Call Blocker : 1,000,000+
Full Screen Caller ID : 5,000,000+
Hiya - Caller ID & Block : 10,000,000+
Mr. Number-Block calls & spam : 10,000,000+
Should I Answer? : 1,000,000+
RocketDial Dialer & Contacts : 1,000,000+
CIA - Caller ID & Call Blocker : 5,000,000+
Calls Blacklist - Call Blocker : 10,000,000+
Call Control - Call Blocker : 5,000,000+
True Contact - Real Caller ID : 1,000,000+
Video Caller Id : 1,000,000+
Sync.ME – Caller ID & Block : 5,000,000+
Burner - Free Phone Number : 1,000,000+
Caller ID + : 1,000,000+
Gmail : 1,000,000,000+
K-9 Mail : 5,000,000+
myMail – Email for Hotmail, Gmail and Outlook Mail : 10,000,000+
Email TypeApp - Mail App : 1,000,000+
All Email Providers : 1,000,000+
Newton Mail - Email App for Gmail, Outlook, IMAP : 1,000,000+
GO Notifier : 10,000,000+
Mail.Ru - Email App : 50,000,000+
Mail1Click - Secure Mail : 10,000+
Daum Mail - Next Mail : 5,000,000+
mail.com mail : 1,000,000+
SolMail - All-in-One email app : 500,000+
Hangouts : 1,000,000,000+
Vonage Mobile® Call Video Text : 1,000,000+
JusTalk - Free Video Calls and Fun Video Chat : 5,000,000+
Azar : 50,000,000+
LokLok: Draw on a Lock Screen : 500,000+
Discord - Chat for Gamers : 10,000,000+
Messenger Lite: Free Calls & Messages : 100,000,000+
AntennaPict β : 1,000,000+
Talkatone: Free Texts, Calls & Phone Number : 10,000,000+
Kik : 100,000,000+
[email protected] Mail - Email App : 100,000+
KakaoTalk: Free Calls & Text : 100,000,000+
K-9 Material (unofficial) : 5,000+
M star Dialer : 100,000+
Free WiFi Connect : 10,000,000+
m:go BiH : 10,000+
N-Com Wizard : 50,000+
Opera Mini - fast web browser : 100,000,000+
Opera Browser: Fast and Secure : 100,000,000+
Opera Mini browser beta : 10,000,000+
Psiphon Pro - The Internet Freedom VPN : 10,000,000+
ICQ — Video Calls & Chat Messenger : 10,000,000+
Telegram : 100,000,000+
AT&T Messages for Tablet : 1,000,000+
T-Mobile DIGITS : 100,000+
Truecaller: Caller ID, SMS spam blocking & Dialer : 100,000,000+
Portable Wi-Fi hotspot : 10,000,000+
AT&T Call Protect : 5,000,000+
U - Webinars, Meetings & Messenger : 500,000+
UC Browser Mini -Tiny Fast Private & Secure : 100,000,000+
/u/app : 10,000+
[verify-U] VideoIdent : 10,000+
Viber Messenger : 500,000,000+
WeChat : 100,000,000+
WhatsApp Business : 10,000,000+
WhatsCall Free Global Phone Call App & Cheap Calls : 10,000,000+
X Browser : 50,000+
Yahoo Mail – Stay Organized : 100,000,000+
Free Adblocker Browser - Adblock & Popup Blocker : 10,000,000+
Adblock Browser for Android : 10,000,000+
CM Browser - Ad Blocker , Fast Download , Privacy : 50,000,000+
Adblock Plus for Samsung Internet - Browse safe. : 1,000,000+
Ad Blocker Turbo - Adblocker Browser : 10,000+
Brave Browser: Fast AdBlocker : 5,000,000+
AG Contacts, Lite edition : 5,000+
Oklahoma Ag Co-op Council : 10+
Bee'ah Employee App : 100+
tournaments and more.aj.2 : 100+
Aj.Petra : 100+
AK Phone : 5,000+
PlacarTv Futebol Ao Vivo : 100,000+
WiFi Access Point (hotspot) : 100,000+
Access Point Names : 10,000+
Puffin Web Browser : 10,000,000+
ClanHQ : 10,000+
Ear Agent: Super Hearing : 5,000,000+
Google Voice : 10,000,000+
Google Allo : 10,000,000+
AU Call Blocker - Block Unwanted Calls Texts 2018 : 1,000+
Baby Monitor AV : 100,000+
AV Phone : 1,000+
AW - free video calls and chat : 1,000,000+
Katalogen.ax : 100+
AZ Browser. Private & Download : 100,000+
BA SALES : 1+
BD Data Plan (3G & 4G) : 500,000+
BD Internet Packages (Updated) : 50,000+
BD Dialer : 10,000+
BD Live Call : 5,000+
Best Browser BD social networking : 10+
Traffic signs BD : 500+
BF Browser by Betfilter - Stop Gambling Today! : 10,000+
My BF App : 50,000+
BH Mail : 1,000+
Zalo – Video Call : 50,000,000+
BJ - Confidential : 10+
BK Chat : 1,000+
Of the wall Arapaho bk : 5+
AC-BL : 50+
BBM - Free Calls & Messages : 100,000,000+
DMR BrandMeister Tool : 10,000+
BBMoji - Your personalized BBM Stickers : 1,000,000+
BN MALLORCA Radio : 1,000+
BQ Partners : 1,000+
BS-Mobile : 50+
ATC Unico BS : 500+
BT One Voice mobile access : 5,000+
BT Messenger : 50,000+
BT One Phone Mobile App : 10,000+
SW-100.tch by Callstel : 1,000,000+
BT MeetMe with Dolby Voice : 100,000+
Bluetooth Auto Connect : 5,000,000+
AudioBT: BT audio GPS/SMS/Text : 50,000+
BV : 100+
Feel Performer : 10,000+
Tiny Call Confirm : 1,000,000+
CB Radio Chat - for friends! : 1,000,000+
CB On Mobile : 100,000+
Virtual Walkie Talkie : 1,000,000+
Channel 19 : 100,000+
Cb browser : 50+
CF Chat: Connecting Friends : 100+
retteMi.ch : 5,000+
Chrome Dev : 5,000,000+
CJ Browser - Fast & Private : 100+
CJ DVD Rentals : 100+
CK Call NEW : 10+
CM Transfer - Share any files with friends nearby : 5,000,000+
mail.co.uk Mail : 5,000+
ClanPlay: Community and Tools for Gamers : 1,000,000+
CQ-Mobile : 1,000+
CQ-Alert : 500+
QRZ Assistant : 100,000+
Pocket Prefix Plus : 10,000+
Ham Radio Prefixes : 10,000+
CS Customizer : 1,000+
CS Browser | #1 & BEST BROWSER : 1,000+
CS Browser Beta : 5,000+
My Vodafone (GR) : 1,000,000+
IZ2UUF Morse Koch CW : 50,000+
C W Browser : 100+
CW Bluetooth SPP : 100+
CW BLE Peripheral Simulator : 500+
Morse Code Reader : 100,000+
Learn Morse Code - G0HYN Learn Morse : 5,000+
Ring : 10,000+
Hyundai CX Conference : 50+
Cy Messenger : 100+
Amadeus GR & CY : 100+
Hlášenírozhlasu.cz : 10+
SMS Sender - sluzba.cz : 1,000+
WEB.DE Mail : 10,000,000+
Your Freedom VPN Client : 5,000,000+
CallApp: Caller ID, Blocker & Phone Call Recorder : 10,000,000+
Rádio Sol Nascente DF : 500+
DG Card : 100+
Whoscall - Caller ID & Block : 10,000,000+
DK Browser : 10+
cluster.dk : 1,000+
DK TEL Dialer : 50+
DM for WhatsApp : 5,000+
DM Talk New : 5,000+
DM - The Offical Messaging App : 10+
DM Tracker : 1,000+
Call Blocker & Blacklist : 1,000+
ReadyOp DT : 1,000+
DU Browser—Browse fast & fun : 10,000,000+
Caller ID & Call Block - DU Caller : 5,000,000+
BlueDV AMBE : 1,000+
DW Contacts & Phone & Dialer : 1,000,000+
Deaf World DW : 10,000+
Ham DX Cluster & Spots Finder : 5,000+
Mircules DX Cluster Lite : 5,000+
3G DZ Configuration : 50,000+
chat dz : 100+
love sms good morning : 5,000+
Goodbox - Mega App : 100,000+
Call Blocker - Blacklist, SMS Blocker : 1,000,000+
[EF]ShoutBox : 100+
Eg Call : 10,000+
ei : 10+
EJ messenger : 10+
Ek IRA : 10+
Orfox: Tor Browser for Android : 10,000,000+
EO Mumbai : 10+
EP RSS Reader : 100+
Voxer Walkie Talkie Messenger : 10,000,000+
ES-1 : 500+
Hangouts Dialer - Call Phones : 10,000,000+
EU Council : 1,000+
Council Voting Calculator : 5,000+
Have your say on Europe : 500+
Programi podrške EU : 100+
Inbox.eu : 10,000+
Web Browser for Android : 1,000,000+
Everbridge : 100,000+
Best Auto Call Recorder Free : 500+
EZ Wifi Notification : 10,000+
Test Server SMS FA : 5+
Lite for Facebook Messenger : 1,000,000+
FC Browser - Focus Privacy Browser : 1,000+
EHiN-FH conferenceapp : 100+
Carpooling FH Hagenberg : 100+
Wi-Fi Auto-connect : 1,000,000+
Talkie - Wi-Fi Calling, Chats, File Sharing : 500,000+
WeFi - Free Fast WiFi Connect & Find Wi-Fi Map : 1,000,000+
Sat-Fi : 5,000+
Portable Wi-Fi hotspot Free : 100,000+
TownWiFi | Wi-Fi Everywhere : 500,000+
Jazz Wi-Fi : 10,000+
Sat-Fi Voice : 1,000+
Free Wi-fi HotspoT : 50,000+
FN Web Radio : 10+
FNH Payment Info : 10+
MARKET FO : 100+
FO OP St-Nazaire : 100+
FO SODEXO : 100+
FO RCBT : 100+
FO Interim : 100+
FO PSA Sept-Fons : 100+
FO AIRBUS TLSE : 1,000+
FO STELIA Méaulte : 100+
FO AIRBUS Nantes : 100+
Firefox Focus: The privacy browser : 1,000,000+
FP Connect : 100+
FreedomPop Messaging Phone/SIM : 500,000+
FP Live : 10+
HipChat - beta version : 50,000+

We see that there are so many apps so we will narrow down the displayed apps between 100,000,000 and 1,000,000,000 installs.

To do this we will creat a new function to use it as a filtering tool.

In [40]:
def installs_filter(category) :
    for app in android_free :
        app_name = app[0]
        category_app = app[1]
        
        if category_app == category :
            n_installs = app[5]
            n_installs = n_installs.replace(',', '')
            n_installs = n_installs.replace('+', '')
            n_installs = float(n_installs)
            
            if 100000000 <= n_installs <= 1000000000 :
                print(app_name, ':', app[5])
        
In [42]:
installs_filter('COMMUNICATION')
WhatsApp Messenger : 1,000,000,000+
imo beta free calls and text : 100,000,000+
Android Messages : 100,000,000+
Google Duo - High Quality Video Calls : 500,000,000+
Messenger – Text and Video Chat for Free : 1,000,000,000+
imo free video calls and chat : 500,000,000+
Skype - free IM & video calls : 1,000,000,000+
Who : 100,000,000+
GO SMS Pro - Messenger, Free Themes, Emoji : 100,000,000+
LINE: Free Calls & Messages : 500,000,000+
Google Chrome: Fast & Secure : 1,000,000,000+
Firefox Browser fast & private : 100,000,000+
UC Browser - Fast Download Private & Secure : 500,000,000+
Gmail : 1,000,000,000+
Hangouts : 1,000,000,000+
Messenger Lite: Free Calls & Messages : 100,000,000+
Kik : 100,000,000+
KakaoTalk: Free Calls & Text : 100,000,000+
Opera Mini - fast web browser : 100,000,000+
Opera Browser: Fast and Secure : 100,000,000+
Telegram : 100,000,000+
Truecaller: Caller ID, SMS spam blocking & Dialer : 100,000,000+
UC Browser Mini -Tiny Fast Private & Secure : 100,000,000+
Viber Messenger : 500,000,000+
WeChat : 100,000,000+
Yahoo Mail – Stay Organized : 100,000,000+
BBM - Free Calls & Messages : 100,000,000+

From the previous output we conclude that the most installs in COMMUNICATION category is dominated by the big name companies like Facebook , Google and skype which will be hard to compete against.

In [44]:
installs_filter('VIDEO_PLAYERS')
YouTube : 1,000,000,000+
Motorola Gallery : 100,000,000+
VLC for Android : 100,000,000+
Google Play Movies & TV : 1,000,000,000+
MX Player : 500,000,000+
Dubsmash : 100,000,000+
VivaVideo - Video Editor & Photo Movie : 100,000,000+
VideoShow-Video Editor, Video Maker, Beauty Camera : 100,000,000+
Motorola FM Radio : 100,000,000+
In [46]:
installs_filter('SOCIAL')
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+
In [48]:
installs_filter('PHOTOGRAPHY')
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+
In [54]:
installs_filter('PRODUCTIVITY')
Microsoft Word : 500,000,000+
Microsoft Outlook : 100,000,000+
Microsoft OneDrive : 100,000,000+
Microsoft OneNote : 100,000,000+
Google Keep : 100,000,000+
ES File Explorer File Manager : 100,000,000+
Dropbox : 500,000,000+
Google Docs : 100,000,000+
Microsoft PowerPoint : 100,000,000+
Samsung Notes : 100,000,000+
SwiftKey Keyboard : 100,000,000+
Google Drive : 1,000,000,000+
Adobe Acrobat Reader : 100,000,000+
Google Sheets : 100,000,000+
Microsoft Excel : 100,000,000+
WPS Office - Word, Docs, PDF, Note, Slide & Sheet : 100,000,000+
Google Slides : 100,000,000+
ColorNote Notepad Notes : 100,000,000+
Evernote – Organizer, Planner for Notes & Memos : 100,000,000+
Google Calendar : 500,000,000+
Cloud Print : 500,000,000+
CamScanner - Phone PDF Creator : 100,000,000+

We see the same pattern for the video players category, which is the runner-up with 24,727,872 installs. The market is dominated by apps like Youtube, Google Play Movies & TV, or MX Player. The pattern is repeated for social apps (where we have giants like Facebook, Instagram, Google+, etc.), photography apps (Google Photos and other popular photo editors), or productivity apps (Microsoft Word, Dropbox, Google Calendar, Evernote, etc.).

In [52]:
installs_filter('GAME')
Sonic Dash : 100,000,000+
PAC-MAN : 100,000,000+
Roll the Ball® - slide puzzle : 100,000,000+
Piano Tiles 2™ : 100,000,000+
Pokémon GO : 100,000,000+
Extreme Car Driving Simulator : 100,000,000+
Trivia Crack : 100,000,000+
Angry Birds 2 : 100,000,000+
Candy Crush Saga : 500,000,000+
8 Ball Pool : 100,000,000+
Subway Surfers : 1,000,000,000+
Candy Crush Soda Saga : 100,000,000+
Clash Royale : 100,000,000+
Clash of Clans : 100,000,000+
Plants vs. Zombies FREE : 100,000,000+
Pou : 500,000,000+
Flow Free : 100,000,000+
My Talking Angela : 100,000,000+
slither.io : 100,000,000+
Cooking Fever : 100,000,000+
Yes day : 100,000,000+
Score! Hero : 100,000,000+
Dream League Soccer 2018 : 100,000,000+
My Talking Tom : 500,000,000+
Sniper 3D Gun Shooter: Free Shooting Games - FPS : 100,000,000+
Zombie Tsunami : 100,000,000+
Helix Jump : 100,000,000+
Crossy Road : 100,000,000+
Temple Run 2 : 500,000,000+
Talking Tom Gold Run : 100,000,000+
Agar.io : 100,000,000+
Bus Rush: Subway Edition : 100,000,000+
Traffic Racer : 100,000,000+
Hill Climb Racing : 100,000,000+
Angry Birds Rio : 100,000,000+
Cut the Rope FULL FREE : 100,000,000+
Hungry Shark Evolution : 100,000,000+
Angry Birds Classic : 100,000,000+
Hill Climb Racing 2 : 100,000,000+
Jetpack Joyride : 100,000,000+
Super Mario Run : 100,000,000+
Glow Hockey : 100,000,000+
Asphalt 8: Airborne : 100,000,000+
Lep's World 2 🍀🍀 : 100,000,000+
Fruit Ninja® : 100,000,000+
Vector : 100,000,000+
Dr. Driving : 100,000,000+
Bike Race Free - Top Motorcycle Racing Games : 100,000,000+
Smash Hit : 100,000,000+
Temple Run : 100,000,000+
Geometry Dash Lite : 100,000,000+
Ant Smasher by Best Cool & Fun Games : 100,000,000+
Angry Birds Star Wars : 100,000,000+
Mobile Legends: Bang Bang : 100,000,000+
Banana Kong : 100,000,000+
Skater Boy : 100,000,000+
Shadow Fight 2 : 100,000,000+
Modern Combat 5: eSports FPS : 100,000,000+
Garena Free Fire : 100,000,000+

For games category we found out that the market is already saturated and developing an app in this genre will not be the best move.

The other categories like Travel_AND_LOCAL, TOOLS, NEWS_AND_MAGAZINES don't seem interesting enough except for BOOKS_AND_REFERENCE which has 8767811 average number of installs.

Let's take a look in BOOKS_AND_REFERENCE category.

In [56]:
app_installs('BOOKS_AND_REFERENCE')
E-Book Read - Read Book for free : 50,000+
Download free book with green book : 100,000+
Wikipedia : 10,000,000+
Cool Reader : 10,000,000+
Free Panda Radio Music : 100,000+
Book store : 1,000,000+
FBReader: Favorite Book Reader : 10,000,000+
English Grammar Complete Handbook : 500,000+
Free Books - Spirit Fanfiction and Stories : 1,000,000+
Google Play Books : 1,000,000,000+
AlReader -any text book reader : 5,000,000+
Offline English Dictionary : 100,000+
Offline: English to Tagalog Dictionary : 500,000+
FamilySearch Tree : 1,000,000+
Cloud of Books : 1,000,000+
Recipes of Prophetic Medicine for free : 500,000+
ReadEra – free ebook reader : 1,000,000+
Anonymous caller detection : 10,000+
Ebook Reader : 5,000,000+
Litnet - E-books : 100,000+
Read books online : 5,000,000+
English to Urdu Dictionary : 500,000+
eBoox: book reader fb2 epub zip : 1,000,000+
English Persian Dictionary : 500,000+
Flybook : 500,000+
All Maths Formulas : 1,000,000+
Ancestry : 5,000,000+
HTC Help : 10,000,000+
English translation from Bengali : 100,000+
Pdf Book Download - Read Pdf Book : 100,000+
Free Book Reader : 100,000+
eBoox new: Reader for fb2 epub zip books : 50,000+
Only 30 days in English, the guideline is guaranteed : 500,000+
Moon+ Reader : 10,000,000+
SH-02J Owner's Manual (Android 8.0) : 50,000+
English-Myanmar Dictionary : 1,000,000+
Golden Dictionary (EN-AR) : 1,000,000+
All Language Translator Free : 1,000,000+
Azpen eReader : 500,000+
URBANO V 02 instruction manual : 100,000+
Bible : 100,000,000+
C Programs and Reference : 50,000+
C Offline Tutorial : 1,000+
C Programs Handbook : 50,000+
Amazon Kindle : 100,000,000+
Aab e Hayat Full Novel : 100,000+
Aldiko Book Reader : 10,000,000+
Google I/O 2018 : 500,000+
R Language Reference Guide : 10,000+
Learn R Programming Full : 5,000+
R Programing Offline Tutorial : 1,000+
Guide for R Programming : 5+
Learn R Programming : 10+
R Quick Reference Big Data : 1,000+
V Made : 100,000+
Wattpad 📖 Free Books : 100,000,000+
Dictionary - WordWeb : 5,000,000+
Guide (for X-MEN) : 100,000+
AC Air condition Troubleshoot,Repair,Maintenance : 5,000+
AE Bulletins : 1,000+
Ae Allah na Dai (Rasa) : 10,000+
50000 Free eBooks & Free AudioBooks : 5,000,000+
Ag PhD Field Guide : 10,000+
Ag PhD Deficiencies : 10,000+
Ag PhD Planting Population Calculator : 1,000+
Ag PhD Soybean Diseases : 1,000+
Fertilizer Removal By Crop : 50,000+
A-J Media Vault : 50+
Al-Quran (Free) : 10,000,000+
Al Quran (Tafsir & by Word) : 500,000+
Al Quran Indonesia : 10,000,000+
Al'Quran Bahasa Indonesia : 10,000,000+
Al Quran Al karim : 1,000,000+
Al-Muhaffiz : 50,000+
Al Quran : EAlim - Translations & MP3 Offline : 5,000,000+
Al-Quran 30 Juz free copies : 500,000+
Koran Read &MP3 30 Juz Offline : 1,000,000+
Hafizi Quran 15 lines per page : 1,000,000+
Quran for Android : 10,000,000+
Surah Al-Waqiah : 100,000+
Hisnul Al Muslim - Hisn Invocations & Adhkaar : 100,000+
Satellite AR : 1,000,000+
Audiobooks from Audible : 100,000,000+
Kinot & Eichah for Tisha B'Av : 10,000+
AW Tozer Devotionals - Daily : 5,000+
Tozer Devotional -Series 1 : 1,000+
The Pursuit of God : 1,000+
AY Sing : 5,000+
Ay Hasnain k Nana Milad Naat : 10,000+
Ay Mohabbat Teri Khatir Novel : 10,000+
Arizona Statutes, ARS (AZ Law) : 1,000+
Oxford A-Z of English Usage : 1,000,000+
BD Fishpedia : 1,000+
BD All Sim Offer : 10,000+
Youboox - Livres, BD et magazines : 500,000+
B&H Kids AR : 10,000+
B y H Niños ES : 5,000+
Dictionary.com: Find Definitions for English Words : 10,000,000+
English Dictionary - Offline : 10,000,000+
Bible KJV : 5,000,000+
Borneo Bible, BM Bible : 10,000+
MOD Black for BM : 100+
BM Box : 1,000+
Anime Mod for BM : 100+
NOOK: Read eBooks & Magazines : 10,000,000+
NOOK Audiobooks : 500,000+
NOOK App for NOOK Devices : 500,000+
Browsery by Barnes & Noble : 5,000+
bp e-store : 1,000+
Brilliant Quotes: Life, Love, Family & Motivation : 1,000,000+
BR Ambedkar Biography & Quotes : 10,000+
BU Alsace : 100+
Catholic La Bu Zo Kam : 500+
Khrifa Hla Bu (Solfa) : 10+
Kristian Hla Bu : 10,000+
SA HLA BU : 1,000+
Learn SAP BW : 500+
Learn SAP BW on HANA : 500+
CA Laws 2018 (California Laws and Codes) : 5,000+
Bootable Methods(USB-CD-DVD) : 10,000+
cloudLibrary : 100,000+
SDA Collegiate Quarterly : 500+
Sabbath School : 100,000+
Cypress College Library : 100+
Stats Royale for Clash Royale : 1,000,000+
GATE 21 years CS Papers(2011-2018 Solved) : 50+
Learn CT Scan Of Head : 5,000+
Easy Cv maker 2018 : 10,000+
How to Write CV : 100,000+
CW Nuclear : 1,000+
CY Spray nozzle : 10+
BibleRead En Cy Zh Yue : 5+
CZ-Help : 5+
Modlitební knížka CZ : 500+
Guide for DB Xenoverse : 10,000+
Guide for DB Xenoverse 2 : 10,000+
Guide for IMS DB : 10+
DC HSEMA : 5,000+
DC Public Library : 1,000+
Painting Lulu DC Super Friends : 1,000+
Dictionary : 10,000,000+
Fix Error Google Playstore : 1,000+
D. H. Lawrence Poems FREE : 1,000+
Bilingual Dictionary Audio App : 5,000+
DM Screen : 10,000+
wikiHow: how to do anything : 1,000,000+
Dr. Doug's Tips : 1,000+
Bible du Semeur-BDS (French) : 50,000+
La citadelle du musulman : 50,000+
DV 2019 Entry Guide : 10,000+
DV 2019 - EDV Photo & Form : 50,000+
DV 2018 Winners Guide : 1,000+
EB Annual Meetings : 1,000+
EC - AP & Telangana : 5,000+
TN Patta Citta & EC : 10,000+
AP Stamps and Registration : 10,000+
CompactiMa EC pH Calibration : 100+
EGW Writings 2 : 100,000+
EGW Writings : 1,000,000+
Bible with EGW Comments : 100,000+
My Little Pony AR Guide : 1,000,000+
SDA Sabbath School Quarterly : 500,000+
Duaa Ek Ibaadat : 5,000+
Spanish English Translator : 10,000,000+
Dictionary - Merriam-Webster : 10,000,000+
JW Library : 10,000,000+
Oxford Dictionary of English : Free : 10,000,000+
English Hindi Dictionary : 10,000,000+
English to Hindi Dictionary : 5,000,000+
EP Research Service : 1,000+
Hymnes et Louanges : 100,000+
EU Charter : 1,000+
EU Data Protection : 1,000+
EU IP Codes : 100+
EW PDF : 5+
BakaReader EX : 100,000+
EZ Quran : 50,000+
FA Part 1 & 2 Past Papers Solved Free – Offline : 5,000+
La Fe de Jesus : 1,000+
La Fe de Jesús : 500+
Le Fe de Jesus : 500+
Florida - Pocket Brainbook : 1,000+
Florida Statutes (FL Code) : 1,000+
English To Shona Dictionary : 10,000+
Greek Bible FP (Audio) : 1,000+
Golden Dictionary (FR-AR) : 500,000+
Fanfic-FR : 5,000+
Bulgarian French Dictionary Fr : 10,000+
Chemin (fr) : 1,000+
The SCP Foundation DB fr nn5n : 1,000+
In [57]:
installs_filter('BOOKS_AND_REFERENCE')
Google Play Books : 1,000,000,000+
Bible : 100,000,000+
Amazon Kindle : 100,000,000+
Wattpad 📖 Free Books : 100,000,000+
Audiobooks from Audible : 100,000,000+

This category seems promising to work with as we notice that there is no intense competition between the apps and also there is no giant companies like the other mentioned categories. However this does not mean that there is no apps with high number of installs.

Also we can work on the same idea we have in the App store and develop an app of a popular book an add some features to level up the content of the app as our aim is to recommend an app genre that shows potential for being profitable on both the App Store and Google Play.

Conclusion

In this project, we analyzed data about the App Store and Google Play mobile apps with the goal of recommending an app profile that can be profitable for both markets.

We concluded that taking a popular book (perhaps a more recent book) and turning it into an app could be profitable for both the Google Play and App Store, and add some special features besides the raw version of the book. This might include a community feature to let the users discuss the book between each other and make their fanart.