ium_444517/data_exploration.ipynb

2083 lines
110 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Google Play Store data exploration\n",
"### Kamila Bobkowska s444517\n",
"\n",
"Link do danych: https://www.kaggle.com/datasets/lava18/google-play-store-apps"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Aby ściągnąć dataset z Kaggle należy założyć konto i pobrać token który umożliwi poprawne korzystanie API. Po pobraniu tokenu trzeba go umieścić w odpowiednim miejscu w zależności czy korzystamy z Winodwsa czy Linuxa jest to inna lokalizacja.\n",
"\n",
"*Robiąc to zadanie pobrałam dane korzystając z kaggle z Windowsem, ponieważ nie mam dostępu do Linuxa oprócz komputera wydziałowego, a tam nie działają mi komendy z biblioteki kaggle.*"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"google-play-store-apps.zip: Skipping, found more recently modified local copy (use --force to force download)\n"
]
}
],
"source": [
"!kaggle datasets download -d lava18/google-play-store-apps"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Archive: google-play-store-apps.zip\n",
" inflating: googleplaystore.csv \n",
" inflating: googleplaystore_user_reviews.csv \n",
" inflating: license.txt \n"
]
}
],
"source": [
"!unzip -o google-play-store-apps.zip"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>App</th>\n",
" <th>Category</th>\n",
" <th>Rating</th>\n",
" <th>Reviews</th>\n",
" <th>Size</th>\n",
" <th>Installs</th>\n",
" <th>Type</th>\n",
" <th>Price</th>\n",
" <th>Content Rating</th>\n",
" <th>Genres</th>\n",
" <th>Last Updated</th>\n",
" <th>Current Ver</th>\n",
" <th>Android Ver</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Photo Editor &amp; Candy Camera &amp; Grid &amp; ScrapBook</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.1</td>\n",
" <td>159</td>\n",
" <td>19M</td>\n",
" <td>10,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design</td>\n",
" <td>January 7, 2018</td>\n",
" <td>1.0.0</td>\n",
" <td>4.0.3 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Coloring book moana</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>3.9</td>\n",
" <td>967</td>\n",
" <td>14M</td>\n",
" <td>500,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design;Pretend Play</td>\n",
" <td>January 15, 2018</td>\n",
" <td>2.0.0</td>\n",
" <td>4.0.3 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>U Launcher Lite FREE Live Cool Themes, Hide ...</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.7</td>\n",
" <td>87510</td>\n",
" <td>8.7M</td>\n",
" <td>5,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design</td>\n",
" <td>August 1, 2018</td>\n",
" <td>1.2.4</td>\n",
" <td>4.0.3 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Sketch - Draw &amp; Paint</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.5</td>\n",
" <td>215644</td>\n",
" <td>25M</td>\n",
" <td>50,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Teen</td>\n",
" <td>Art &amp; Design</td>\n",
" <td>June 8, 2018</td>\n",
" <td>Varies with device</td>\n",
" <td>4.2 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Pixel Draw - Number Art Coloring Book</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.3</td>\n",
" <td>967</td>\n",
" <td>2.8M</td>\n",
" <td>100,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design;Creativity</td>\n",
" <td>June 20, 2018</td>\n",
" <td>1.1</td>\n",
" <td>4.4 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10836</th>\n",
" <td>Sya9a Maroc - FR</td>\n",
" <td>FAMILY</td>\n",
" <td>4.5</td>\n",
" <td>38</td>\n",
" <td>53M</td>\n",
" <td>5,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Education</td>\n",
" <td>July 25, 2017</td>\n",
" <td>1.48</td>\n",
" <td>4.1 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10837</th>\n",
" <td>Fr. Mike Schmitz Audio Teachings</td>\n",
" <td>FAMILY</td>\n",
" <td>5.0</td>\n",
" <td>4</td>\n",
" <td>3.6M</td>\n",
" <td>100+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Education</td>\n",
" <td>July 6, 2018</td>\n",
" <td>1.0</td>\n",
" <td>4.1 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10838</th>\n",
" <td>Parkinson Exercices FR</td>\n",
" <td>MEDICAL</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>9.5M</td>\n",
" <td>1,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Medical</td>\n",
" <td>January 20, 2017</td>\n",
" <td>1.0</td>\n",
" <td>2.2 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10839</th>\n",
" <td>The SCP Foundation DB fr nn5n</td>\n",
" <td>BOOKS_AND_REFERENCE</td>\n",
" <td>4.5</td>\n",
" <td>114</td>\n",
" <td>Varies with device</td>\n",
" <td>1,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Mature 17+</td>\n",
" <td>Books &amp; Reference</td>\n",
" <td>January 19, 2015</td>\n",
" <td>Varies with device</td>\n",
" <td>Varies with device</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10840</th>\n",
" <td>iHoroscope - 2018 Daily Horoscope &amp; Astrology</td>\n",
" <td>LIFESTYLE</td>\n",
" <td>4.5</td>\n",
" <td>398307</td>\n",
" <td>19M</td>\n",
" <td>10,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Lifestyle</td>\n",
" <td>July 25, 2018</td>\n",
" <td>Varies with device</td>\n",
" <td>Varies with device</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>10841 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" App Category \\\n",
"0 Photo Editor & Candy Camera & Grid & ScrapBook ART_AND_DESIGN \n",
"1 Coloring book moana ART_AND_DESIGN \n",
"2 U Launcher Lite FREE Live Cool Themes, Hide ... ART_AND_DESIGN \n",
"3 Sketch - Draw & Paint ART_AND_DESIGN \n",
"4 Pixel Draw - Number Art Coloring Book ART_AND_DESIGN \n",
"... ... ... \n",
"10836 Sya9a Maroc - FR FAMILY \n",
"10837 Fr. Mike Schmitz Audio Teachings FAMILY \n",
"10838 Parkinson Exercices FR MEDICAL \n",
"10839 The SCP Foundation DB fr nn5n BOOKS_AND_REFERENCE \n",
"10840 iHoroscope - 2018 Daily Horoscope & Astrology LIFESTYLE \n",
"\n",
" Rating Reviews Size Installs Type Price \\\n",
"0 4.1 159 19M 10,000+ Free 0 \n",
"1 3.9 967 14M 500,000+ Free 0 \n",
"2 4.7 87510 8.7M 5,000,000+ Free 0 \n",
"3 4.5 215644 25M 50,000,000+ Free 0 \n",
"4 4.3 967 2.8M 100,000+ Free 0 \n",
"... ... ... ... ... ... ... \n",
"10836 4.5 38 53M 5,000+ Free 0 \n",
"10837 5.0 4 3.6M 100+ Free 0 \n",
"10838 NaN 3 9.5M 1,000+ Free 0 \n",
"10839 4.5 114 Varies with device 1,000+ Free 0 \n",
"10840 4.5 398307 19M 10,000,000+ Free 0 \n",
"\n",
" Content Rating Genres Last Updated \\\n",
"0 Everyone Art & Design January 7, 2018 \n",
"1 Everyone Art & Design;Pretend Play January 15, 2018 \n",
"2 Everyone Art & Design August 1, 2018 \n",
"3 Teen Art & Design June 8, 2018 \n",
"4 Everyone Art & Design;Creativity June 20, 2018 \n",
"... ... ... ... \n",
"10836 Everyone Education July 25, 2017 \n",
"10837 Everyone Education July 6, 2018 \n",
"10838 Everyone Medical January 20, 2017 \n",
"10839 Mature 17+ Books & Reference January 19, 2015 \n",
"10840 Everyone Lifestyle July 25, 2018 \n",
"\n",
" Current Ver Android Ver \n",
"0 1.0.0 4.0.3 and up \n",
"1 2.0.0 4.0.3 and up \n",
"2 1.2.4 4.0.3 and up \n",
"3 Varies with device 4.2 and up \n",
"4 1.1 4.4 and up \n",
"... ... ... \n",
"10836 1.48 4.1 and up \n",
"10837 1.0 4.1 and up \n",
"10838 1.0 2.2 and up \n",
"10839 Varies with device Varies with device \n",
"10840 Varies with device Varies with device \n",
"\n",
"[10841 rows x 13 columns]"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"data = pd.read_csv('googleplaystore.csv')\n",
"data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data exploration"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type',\n",
" 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver',\n",
" 'Android Ver'],\n",
" dtype='object')"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.columns"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"App object\n",
"Category object\n",
"Rating float64\n",
"Reviews object\n",
"Size object\n",
"Installs object\n",
"Type object\n",
"Price object\n",
"Content Rating object\n",
"Genres object\n",
"Last Updated object\n",
"Current Ver object\n",
"Android Ver object\n",
"dtype: object"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>App</th>\n",
" <th>Category</th>\n",
" <th>Rating</th>\n",
" <th>Reviews</th>\n",
" <th>Size</th>\n",
" <th>Installs</th>\n",
" <th>Type</th>\n",
" <th>Price</th>\n",
" <th>Content Rating</th>\n",
" <th>Genres</th>\n",
" <th>Last Updated</th>\n",
" <th>Current Ver</th>\n",
" <th>Android Ver</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>10841</td>\n",
" <td>10841</td>\n",
" <td>9367.000000</td>\n",
" <td>10841</td>\n",
" <td>10841</td>\n",
" <td>10841</td>\n",
" <td>10840</td>\n",
" <td>10841</td>\n",
" <td>10840</td>\n",
" <td>10841</td>\n",
" <td>10841</td>\n",
" <td>10833</td>\n",
" <td>10838</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>9660</td>\n",
" <td>34</td>\n",
" <td>NaN</td>\n",
" <td>6002</td>\n",
" <td>462</td>\n",
" <td>22</td>\n",
" <td>3</td>\n",
" <td>93</td>\n",
" <td>6</td>\n",
" <td>120</td>\n",
" <td>1378</td>\n",
" <td>2832</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>ROBLOX</td>\n",
" <td>FAMILY</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>Varies with device</td>\n",
" <td>1,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Tools</td>\n",
" <td>August 3, 2018</td>\n",
" <td>Varies with device</td>\n",
" <td>4.1 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>9</td>\n",
" <td>1972</td>\n",
" <td>NaN</td>\n",
" <td>596</td>\n",
" <td>1695</td>\n",
" <td>1579</td>\n",
" <td>10039</td>\n",
" <td>10040</td>\n",
" <td>8714</td>\n",
" <td>842</td>\n",
" <td>326</td>\n",
" <td>1459</td>\n",
" <td>2451</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.193338</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.537431</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.300000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.500000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>19.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" App Category Rating Reviews Size Installs \\\n",
"count 10841 10841 9367.000000 10841 10841 10841 \n",
"unique 9660 34 NaN 6002 462 22 \n",
"top ROBLOX FAMILY NaN 0 Varies with device 1,000,000+ \n",
"freq 9 1972 NaN 596 1695 1579 \n",
"mean NaN NaN 4.193338 NaN NaN NaN \n",
"std NaN NaN 0.537431 NaN NaN NaN \n",
"min NaN NaN 1.000000 NaN NaN NaN \n",
"25% NaN NaN 4.000000 NaN NaN NaN \n",
"50% NaN NaN 4.300000 NaN NaN NaN \n",
"75% NaN NaN 4.500000 NaN NaN NaN \n",
"max NaN NaN 19.000000 NaN NaN NaN \n",
"\n",
" Type Price Content Rating Genres Last Updated \\\n",
"count 10840 10841 10840 10841 10841 \n",
"unique 3 93 6 120 1378 \n",
"top Free 0 Everyone Tools August 3, 2018 \n",
"freq 10039 10040 8714 842 326 \n",
"mean NaN NaN NaN NaN NaN \n",
"std NaN NaN NaN NaN NaN \n",
"min NaN NaN NaN NaN NaN \n",
"25% NaN NaN NaN NaN NaN \n",
"50% NaN NaN NaN NaN NaN \n",
"75% NaN NaN NaN NaN NaN \n",
"max NaN NaN NaN NaN NaN \n",
"\n",
" Current Ver Android Ver \n",
"count 10833 10838 \n",
"unique 2832 33 \n",
"top Varies with device 4.1 and up \n",
"freq 1459 2451 \n",
"mean NaN NaN \n",
"std NaN NaN \n",
"min NaN NaN \n",
"25% NaN NaN \n",
"50% NaN NaN \n",
"75% NaN NaN \n",
"max NaN NaN "
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe(include='all')"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"FAMILY 1972\n",
"GAME 1144\n",
"TOOLS 843\n",
"MEDICAL 463\n",
"BUSINESS 460\n",
"PRODUCTIVITY 424\n",
"PERSONALIZATION 392\n",
"COMMUNICATION 387\n",
"SPORTS 384\n",
"LIFESTYLE 382\n",
"FINANCE 366\n",
"HEALTH_AND_FITNESS 341\n",
"PHOTOGRAPHY 335\n",
"SOCIAL 295\n",
"NEWS_AND_MAGAZINES 283\n",
"SHOPPING 260\n",
"TRAVEL_AND_LOCAL 258\n",
"DATING 234\n",
"BOOKS_AND_REFERENCE 231\n",
"VIDEO_PLAYERS 175\n",
"EDUCATION 156\n",
"ENTERTAINMENT 149\n",
"MAPS_AND_NAVIGATION 137\n",
"FOOD_AND_DRINK 127\n",
"HOUSE_AND_HOME 88\n",
"LIBRARIES_AND_DEMO 85\n",
"AUTO_AND_VEHICLES 85\n",
"WEATHER 82\n",
"ART_AND_DESIGN 65\n",
"EVENTS 64\n",
"PARENTING 60\n",
"COMICS 60\n",
"BEAUTY 53\n",
"1.9 1\n",
"Name: Category, dtype: int64"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Category'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Everyone 8714\n",
"Teen 1208\n",
"Mature 17+ 499\n",
"Everyone 10+ 414\n",
"Adults only 18+ 3\n",
"Unrated 2\n",
"Name: Content Rating, dtype: int64"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[\"Content Rating\"].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Tools 842\n",
"Entertainment 623\n",
"Education 549\n",
"Medical 463\n",
"Business 460\n",
" ... \n",
"Parenting;Brain Games 1\n",
"Health & Fitness;Education 1\n",
"Role Playing;Education 1\n",
"Puzzle;Education 1\n",
"Travel & Local;Action & Adventure 1\n",
"Name: Genres, Length: 120, dtype: int64"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Genres'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 10040\n",
"$0.99 148\n",
"$2.99 129\n",
"$1.99 73\n",
"$4.99 72\n",
" ... \n",
"$3.02 1\n",
"$2.95 1\n",
"$1.61 1\n",
"$14.00 1\n",
"$1.29 1\n",
"Name: Price, Length: 93, dtype: int64"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Price'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"App 0\n",
"Category 0\n",
"Rating 1474\n",
"Reviews 0\n",
"Size 0\n",
"Installs 0\n",
"Type 1\n",
"Price 0\n",
"Content Rating 1\n",
"Genres 0\n",
"Last Updated 0\n",
"Current Ver 8\n",
"Android Ver 3\n",
"dtype: int64"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>App</th>\n",
" <th>Category</th>\n",
" <th>Rating</th>\n",
" <th>Reviews</th>\n",
" <th>Size</th>\n",
" <th>Installs</th>\n",
" <th>Type</th>\n",
" <th>Price</th>\n",
" <th>Content Rating</th>\n",
" <th>Genres</th>\n",
" <th>Last Updated</th>\n",
" <th>Current Ver</th>\n",
" <th>Android Ver</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Photo Editor &amp; Candy Camera &amp; Grid &amp; ScrapBook</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.1</td>\n",
" <td>159</td>\n",
" <td>19M</td>\n",
" <td>10,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design</td>\n",
" <td>January 7, 2018</td>\n",
" <td>1.0.0</td>\n",
" <td>4.0.3 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Coloring book moana</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>3.9</td>\n",
" <td>967</td>\n",
" <td>14M</td>\n",
" <td>500,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design;Pretend Play</td>\n",
" <td>January 15, 2018</td>\n",
" <td>2.0.0</td>\n",
" <td>4.0.3 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>U Launcher Lite FREE Live Cool Themes, Hide ...</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.7</td>\n",
" <td>87510</td>\n",
" <td>8.7M</td>\n",
" <td>5,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design</td>\n",
" <td>August 1, 2018</td>\n",
" <td>1.2.4</td>\n",
" <td>4.0.3 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Sketch - Draw &amp; Paint</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.5</td>\n",
" <td>215644</td>\n",
" <td>25M</td>\n",
" <td>50,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Teen</td>\n",
" <td>Art &amp; Design</td>\n",
" <td>June 8, 2018</td>\n",
" <td>Varies with device</td>\n",
" <td>4.2 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Pixel Draw - Number Art Coloring Book</td>\n",
" <td>ART_AND_DESIGN</td>\n",
" <td>4.3</td>\n",
" <td>967</td>\n",
" <td>2.8M</td>\n",
" <td>100,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Art &amp; Design;Creativity</td>\n",
" <td>June 20, 2018</td>\n",
" <td>1.1</td>\n",
" <td>4.4 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9355</th>\n",
" <td>FR Calculator</td>\n",
" <td>FAMILY</td>\n",
" <td>4.0</td>\n",
" <td>7</td>\n",
" <td>2.6M</td>\n",
" <td>500+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Education</td>\n",
" <td>June 18, 2017</td>\n",
" <td>1.0.0</td>\n",
" <td>4.1 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9356</th>\n",
" <td>Sya9a Maroc - FR</td>\n",
" <td>FAMILY</td>\n",
" <td>4.5</td>\n",
" <td>38</td>\n",
" <td>53M</td>\n",
" <td>5,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Education</td>\n",
" <td>July 25, 2017</td>\n",
" <td>1.48</td>\n",
" <td>4.1 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9357</th>\n",
" <td>Fr. Mike Schmitz Audio Teachings</td>\n",
" <td>FAMILY</td>\n",
" <td>5.0</td>\n",
" <td>4</td>\n",
" <td>3.6M</td>\n",
" <td>100+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Education</td>\n",
" <td>July 6, 2018</td>\n",
" <td>1.0</td>\n",
" <td>4.1 and up</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9358</th>\n",
" <td>The SCP Foundation DB fr nn5n</td>\n",
" <td>BOOKS_AND_REFERENCE</td>\n",
" <td>4.5</td>\n",
" <td>114</td>\n",
" <td>Varies with device</td>\n",
" <td>1,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Mature 17+</td>\n",
" <td>Books &amp; Reference</td>\n",
" <td>January 19, 2015</td>\n",
" <td>Varies with device</td>\n",
" <td>Varies with device</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9359</th>\n",
" <td>iHoroscope - 2018 Daily Horoscope &amp; Astrology</td>\n",
" <td>LIFESTYLE</td>\n",
" <td>4.5</td>\n",
" <td>398307</td>\n",
" <td>19M</td>\n",
" <td>10,000,000+</td>\n",
" <td>Free</td>\n",
" <td>0</td>\n",
" <td>Everyone</td>\n",
" <td>Lifestyle</td>\n",
" <td>July 25, 2018</td>\n",
" <td>Varies with device</td>\n",
" <td>Varies with device</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>9360 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" App Category \\\n",
"0 Photo Editor & Candy Camera & Grid & ScrapBook ART_AND_DESIGN \n",
"1 Coloring book moana ART_AND_DESIGN \n",
"2 U Launcher Lite FREE Live Cool Themes, Hide ... ART_AND_DESIGN \n",
"3 Sketch - Draw & Paint ART_AND_DESIGN \n",
"4 Pixel Draw - Number Art Coloring Book ART_AND_DESIGN \n",
"... ... ... \n",
"9355 FR Calculator FAMILY \n",
"9356 Sya9a Maroc - FR FAMILY \n",
"9357 Fr. Mike Schmitz Audio Teachings FAMILY \n",
"9358 The SCP Foundation DB fr nn5n BOOKS_AND_REFERENCE \n",
"9359 iHoroscope - 2018 Daily Horoscope & Astrology LIFESTYLE \n",
"\n",
" Rating Reviews Size Installs Type Price \\\n",
"0 4.1 159 19M 10,000+ Free 0 \n",
"1 3.9 967 14M 500,000+ Free 0 \n",
"2 4.7 87510 8.7M 5,000,000+ Free 0 \n",
"3 4.5 215644 25M 50,000,000+ Free 0 \n",
"4 4.3 967 2.8M 100,000+ Free 0 \n",
"... ... ... ... ... ... ... \n",
"9355 4.0 7 2.6M 500+ Free 0 \n",
"9356 4.5 38 53M 5,000+ Free 0 \n",
"9357 5.0 4 3.6M 100+ Free 0 \n",
"9358 4.5 114 Varies with device 1,000+ Free 0 \n",
"9359 4.5 398307 19M 10,000,000+ Free 0 \n",
"\n",
" Content Rating Genres Last Updated \\\n",
"0 Everyone Art & Design January 7, 2018 \n",
"1 Everyone Art & Design;Pretend Play January 15, 2018 \n",
"2 Everyone Art & Design August 1, 2018 \n",
"3 Teen Art & Design June 8, 2018 \n",
"4 Everyone Art & Design;Creativity June 20, 2018 \n",
"... ... ... ... \n",
"9355 Everyone Education June 18, 2017 \n",
"9356 Everyone Education July 25, 2017 \n",
"9357 Everyone Education July 6, 2018 \n",
"9358 Mature 17+ Books & Reference January 19, 2015 \n",
"9359 Everyone Lifestyle July 25, 2018 \n",
"\n",
" Current Ver Android Ver \n",
"0 1.0.0 4.0.3 and up \n",
"1 2.0.0 4.0.3 and up \n",
"2 1.2.4 4.0.3 and up \n",
"3 Varies with device 4.2 and up \n",
"4 1.1 4.4 and up \n",
"... ... ... \n",
"9355 1.0.0 4.1 and up \n",
"9356 1.48 4.1 and up \n",
"9357 1.0 4.1 and up \n",
"9358 Varies with device Varies with device \n",
"9359 Varies with device Varies with device \n",
"\n",
"[9360 rows x 13 columns]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.dropna(subset=['Rating', 'Type','Content Rating','Current Ver','Android Ver'], inplace=True)\n",
"data.reset_index(drop=True, inplace=True)\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"App 0\n",
"Category 0\n",
"Rating 0\n",
"Reviews 0\n",
"Size 0\n",
"Installs 0\n",
"Type 0\n",
"Price 0\n",
"Content Rating 0\n",
"Genres 0\n",
"Last Updated 0\n",
"Current Ver 0\n",
"Android Ver 0\n",
"dtype: int64"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isnull().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Proste wizualizacje"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"plt.figure(figsize=(20,5))\n",
"sns.distplot(data['Rating']).set(title='Ratings')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data[\"Price\"] = data[\"Price\"].replace({'\\$': ''}, regex=True)\n",
"plt.figure(figsize=(20,5))\n",
"sns.distplot(data['Price']).set(title='Ratings')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kolumna \"Size\"\n",
"Mimo, że ta kolumna może mieć znaczenie przy opracowwaniu danych ta kolumna zostanie pominięta ze względu na występującą w niej wartość \"Varies with device\", którą byłoby ciążko opracować. Ponadto nie można po prostu usunąć wszystkich jej wystąpień, ponieważ występują ona w ponad 1500 rzędach."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['19M' '14M' '8.7M' '25M' '2.8M' '5.6M' '29M' '33M' '3.1M' '28M' '12M'\n",
" '20M' '21M' '37M' '5.5M' '17M' '39M' '31M' '4.2M' '23M' '6.0M' '6.1M'\n",
" '4.6M' '9.2M' '5.2M' '11M' '24M' 'Varies with device' '9.4M' '15M' '10M'\n",
" '1.2M' '26M' '8.0M' '7.9M' '56M' '57M' '35M' '54M' '201k' '3.6M' '5.7M'\n",
" '8.6M' '2.4M' '27M' '2.7M' '2.5M' '7.0M' '16M' '3.4M' '8.9M' '3.9M'\n",
" '2.9M' '38M' '32M' '5.4M' '18M' '1.1M' '2.2M' '4.5M' '9.8M' '52M' '9.0M'\n",
" '6.7M' '30M' '2.6M' '7.1M' '22M' '6.4M' '3.2M' '8.2M' '4.9M' '9.5M'\n",
" '5.0M' '5.9M' '13M' '73M' '6.8M' '3.5M' '4.0M' '2.3M' '2.1M' '42M' '9.1M'\n",
" '55M' '23k' '7.3M' '6.5M' '1.5M' '7.5M' '51M' '41M' '48M' '8.5M' '46M'\n",
" '8.3M' '4.3M' '4.7M' '3.3M' '40M' '7.8M' '8.8M' '6.6M' '5.1M' '61M' '66M'\n",
" '79k' '8.4M' '3.7M' '118k' '44M' '695k' '1.6M' '6.2M' '53M' '1.4M' '3.0M'\n",
" '7.2M' '5.8M' '3.8M' '9.6M' '45M' '63M' '49M' '77M' '4.4M' '70M' '9.3M'\n",
" '8.1M' '36M' '6.9M' '7.4M' '84M' '97M' '2.0M' '1.9M' '1.8M' '5.3M' '47M'\n",
" '556k' '526k' '76M' '7.6M' '59M' '9.7M' '78M' '72M' '43M' '7.7M' '6.3M'\n",
" '334k' '93M' '65M' '79M' '100M' '58M' '50M' '68M' '64M' '34M' '67M' '60M'\n",
" '94M' '9.9M' '232k' '99M' '624k' '95M' '8.5k' '41k' '292k' '80M' '1.7M'\n",
" '10.0M' '74M' '62M' '69M' '75M' '98M' '85M' '82M' '96M' '87M' '71M' '86M'\n",
" '91M' '81M' '92M' '83M' '88M' '704k' '862k' '899k' '378k' '4.8M' '266k'\n",
" '375k' '1.3M' '975k' '980k' '4.1M' '89M' '696k' '544k' '525k' '920k'\n",
" '779k' '853k' '720k' '713k' '772k' '318k' '58k' '241k' '196k' '857k'\n",
" '51k' '953k' '865k' '251k' '930k' '540k' '313k' '746k' '203k' '26k'\n",
" '314k' '239k' '371k' '220k' '730k' '756k' '91k' '293k' '17k' '74k' '14k'\n",
" '317k' '78k' '924k' '818k' '81k' '939k' '169k' '45k' '965k' '90M' '545k'\n",
" '61k' '283k' '655k' '714k' '93k' '872k' '121k' '322k' '976k' '206k'\n",
" '954k' '444k' '717k' '210k' '609k' '308k' '306k' '175k' '350k' '383k'\n",
" '454k' '1.0M' '70k' '812k' '442k' '842k' '417k' '412k' '459k' '478k'\n",
" '335k' '782k' '721k' '430k' '429k' '192k' '460k' '728k' '496k' '816k'\n",
" '414k' '506k' '887k' '613k' '778k' '683k' '592k' '186k' '840k' '647k'\n",
" '373k' '437k' '598k' '716k' '585k' '982k' '219k' '55k' '323k' '691k'\n",
" '511k' '951k' '963k' '25k' '554k' '351k' '27k' '82k' '208k' '551k' '29k'\n",
" '103k' '116k' '153k' '209k' '499k' '173k' '597k' '809k' '122k' '411k'\n",
" '400k' '801k' '787k' '50k' '643k' '986k' '516k' '837k' '780k' '20k'\n",
" '498k' '600k' '656k' '221k' '228k' '176k' '34k' '259k' '164k' '458k'\n",
" '629k' '28k' '288k' '775k' '785k' '636k' '916k' '994k' '309k' '485k'\n",
" '914k' '903k' '608k' '500k' '54k' '562k' '847k' '948k' '811k' '270k'\n",
" '48k' '523k' '784k' '280k' '24k' '892k' '154k' '18k' '33k' '860k' '364k'\n",
" '387k' '626k' '161k' '879k' '39k' '170k' '141k' '160k' '144k' '143k'\n",
" '190k' '376k' '193k' '473k' '246k' '73k' '253k' '957k' '420k' '72k'\n",
" '404k' '470k' '226k' '240k' '89k' '234k' '257k' '861k' '467k' '676k'\n",
" '552k' '582k' '619k']\n"
]
}
],
"source": [
"print(data[\"Size\"].unique())"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1637"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[data.Size == 'Varies with device'].shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [],
"source": [
"data = data.drop(columns=[\"Size\", \"Android Ver\", \"Current Ver\", \"Last Updated\"])"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"to_lowercase = ['App', 'Category', 'Type', 'Content Rating', 'Genres']\n",
"for column in to_lowercase:\n",
" data[column] = data[column].apply(str.lower)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>App</th>\n",
" <th>Category</th>\n",
" <th>Rating</th>\n",
" <th>Reviews</th>\n",
" <th>Installs</th>\n",
" <th>Type</th>\n",
" <th>Price</th>\n",
" <th>Content Rating</th>\n",
" <th>Genres</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>photo editor &amp; candy camera &amp; grid &amp; scrapbook</td>\n",
" <td>art_and_design</td>\n",
" <td>4.1</td>\n",
" <td>2.021538e-06</td>\n",
" <td>10000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>coloring book moana</td>\n",
" <td>art_and_design</td>\n",
" <td>3.9</td>\n",
" <td>1.235953e-05</td>\n",
" <td>500000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design;pretend play</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>u launcher lite free live cool themes, hide ...</td>\n",
" <td>art_and_design</td>\n",
" <td>4.7</td>\n",
" <td>1.119638e-03</td>\n",
" <td>5000000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sketch - draw &amp; paint</td>\n",
" <td>art_and_design</td>\n",
" <td>4.5</td>\n",
" <td>2.759054e-03</td>\n",
" <td>50000000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>teen</td>\n",
" <td>art &amp; design</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>pixel draw - number art coloring book</td>\n",
" <td>art_and_design</td>\n",
" <td>4.3</td>\n",
" <td>1.235953e-05</td>\n",
" <td>100000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design;creativity</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9355</th>\n",
" <td>fr calculator</td>\n",
" <td>family</td>\n",
" <td>4.0</td>\n",
" <td>7.676727e-08</td>\n",
" <td>500</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>education</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9356</th>\n",
" <td>sya9a maroc - fr</td>\n",
" <td>family</td>\n",
" <td>4.5</td>\n",
" <td>4.733982e-07</td>\n",
" <td>5000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>education</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9357</th>\n",
" <td>fr. mike schmitz audio teachings</td>\n",
" <td>family</td>\n",
" <td>5.0</td>\n",
" <td>3.838364e-08</td>\n",
" <td>100</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>education</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9358</th>\n",
" <td>the scp foundation db fr nn5n</td>\n",
" <td>books_and_reference</td>\n",
" <td>4.5</td>\n",
" <td>1.445784e-06</td>\n",
" <td>1000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>mature 17+</td>\n",
" <td>books &amp; reference</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9359</th>\n",
" <td>ihoroscope - 2018 daily horoscope &amp; astrology</td>\n",
" <td>lifestyle</td>\n",
" <td>4.5</td>\n",
" <td>5.096144e-03</td>\n",
" <td>10000000</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>lifestyle</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>9360 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" App Category \\\n",
"0 photo editor & candy camera & grid & scrapbook art_and_design \n",
"1 coloring book moana art_and_design \n",
"2 u launcher lite free live cool themes, hide ... art_and_design \n",
"3 sketch - draw & paint art_and_design \n",
"4 pixel draw - number art coloring book art_and_design \n",
"... ... ... \n",
"9355 fr calculator family \n",
"9356 sya9a maroc - fr family \n",
"9357 fr. mike schmitz audio teachings family \n",
"9358 the scp foundation db fr nn5n books_and_reference \n",
"9359 ihoroscope - 2018 daily horoscope & astrology lifestyle \n",
"\n",
" Rating Reviews Installs Type Price Content Rating \\\n",
"0 4.1 2.021538e-06 10000 free 0 everyone \n",
"1 3.9 1.235953e-05 500000 free 0 everyone \n",
"2 4.7 1.119638e-03 5000000 free 0 everyone \n",
"3 4.5 2.759054e-03 50000000 free 0 teen \n",
"4 4.3 1.235953e-05 100000 free 0 everyone \n",
"... ... ... ... ... ... ... \n",
"9355 4.0 7.676727e-08 500 free 0 everyone \n",
"9356 4.5 4.733982e-07 5000 free 0 everyone \n",
"9357 5.0 3.838364e-08 100 free 0 everyone \n",
"9358 4.5 1.445784e-06 1000 free 0 mature 17+ \n",
"9359 4.5 5.096144e-03 10000000 free 0 everyone \n",
"\n",
" Genres \n",
"0 art & design \n",
"1 art & design;pretend play \n",
"2 art & design \n",
"3 art & design \n",
"4 art & design;creativity \n",
"... ... \n",
"9355 education \n",
"9356 education \n",
"9357 education \n",
"9358 books & reference \n",
"9359 lifestyle \n",
"\n",
"[9360 rows x 9 columns]"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[\"Installs\"] = data[\"Installs\"].replace({'\\+': ''}, regex=True)\n",
"data[\"Installs\"] = data[\"Installs\"].replace({',': ''}, regex=True)\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>App</th>\n",
" <th>Category</th>\n",
" <th>Rating</th>\n",
" <th>Reviews</th>\n",
" <th>Installs</th>\n",
" <th>Type</th>\n",
" <th>Price</th>\n",
" <th>Content Rating</th>\n",
" <th>Genres</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>photo editor &amp; candy camera &amp; grid &amp; scrapbook</td>\n",
" <td>art_and_design</td>\n",
" <td>4.1</td>\n",
" <td>2.021538e-06</td>\n",
" <td>9.999000e-06</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>coloring book moana</td>\n",
" <td>art_and_design</td>\n",
" <td>3.9</td>\n",
" <td>1.235953e-05</td>\n",
" <td>4.999990e-04</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design;pretend play</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>u launcher lite free live cool themes, hide ...</td>\n",
" <td>art_and_design</td>\n",
" <td>4.7</td>\n",
" <td>1.119638e-03</td>\n",
" <td>4.999999e-03</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>sketch - draw &amp; paint</td>\n",
" <td>art_and_design</td>\n",
" <td>4.5</td>\n",
" <td>2.759054e-03</td>\n",
" <td>5.000000e-02</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>teen</td>\n",
" <td>art &amp; design</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>pixel draw - number art coloring book</td>\n",
" <td>art_and_design</td>\n",
" <td>4.3</td>\n",
" <td>1.235953e-05</td>\n",
" <td>9.999900e-05</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>art &amp; design;creativity</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9355</th>\n",
" <td>fr calculator</td>\n",
" <td>family</td>\n",
" <td>4.0</td>\n",
" <td>7.676727e-08</td>\n",
" <td>4.990000e-07</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>education</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9356</th>\n",
" <td>sya9a maroc - fr</td>\n",
" <td>family</td>\n",
" <td>4.5</td>\n",
" <td>4.733982e-07</td>\n",
" <td>4.999000e-06</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>education</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9357</th>\n",
" <td>fr. mike schmitz audio teachings</td>\n",
" <td>family</td>\n",
" <td>5.0</td>\n",
" <td>3.838364e-08</td>\n",
" <td>9.900000e-08</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>education</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9358</th>\n",
" <td>the scp foundation db fr nn5n</td>\n",
" <td>books_and_reference</td>\n",
" <td>4.5</td>\n",
" <td>1.445784e-06</td>\n",
" <td>9.990000e-07</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>mature 17+</td>\n",
" <td>books &amp; reference</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9359</th>\n",
" <td>ihoroscope - 2018 daily horoscope &amp; astrology</td>\n",
" <td>lifestyle</td>\n",
" <td>4.5</td>\n",
" <td>5.096144e-03</td>\n",
" <td>9.999999e-03</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>lifestyle</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>9360 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" App Category \\\n",
"0 photo editor & candy camera & grid & scrapbook art_and_design \n",
"1 coloring book moana art_and_design \n",
"2 u launcher lite free live cool themes, hide ... art_and_design \n",
"3 sketch - draw & paint art_and_design \n",
"4 pixel draw - number art coloring book art_and_design \n",
"... ... ... \n",
"9355 fr calculator family \n",
"9356 sya9a maroc - fr family \n",
"9357 fr. mike schmitz audio teachings family \n",
"9358 the scp foundation db fr nn5n books_and_reference \n",
"9359 ihoroscope - 2018 daily horoscope & astrology lifestyle \n",
"\n",
" Rating Reviews Installs Type Price Content Rating \\\n",
"0 4.1 2.021538e-06 9.999000e-06 free 0 everyone \n",
"1 3.9 1.235953e-05 4.999990e-04 free 0 everyone \n",
"2 4.7 1.119638e-03 4.999999e-03 free 0 everyone \n",
"3 4.5 2.759054e-03 5.000000e-02 free 0 teen \n",
"4 4.3 1.235953e-05 9.999900e-05 free 0 everyone \n",
"... ... ... ... ... ... ... \n",
"9355 4.0 7.676727e-08 4.990000e-07 free 0 everyone \n",
"9356 4.5 4.733982e-07 4.999000e-06 free 0 everyone \n",
"9357 5.0 3.838364e-08 9.900000e-08 free 0 everyone \n",
"9358 4.5 1.445784e-06 9.990000e-07 free 0 mature 17+ \n",
"9359 4.5 5.096144e-03 9.999999e-03 free 0 everyone \n",
"\n",
" Genres \n",
"0 art & design \n",
"1 art & design;pretend play \n",
"2 art & design \n",
"3 art & design \n",
"4 art & design;creativity \n",
"... ... \n",
"9355 education \n",
"9356 education \n",
"9357 education \n",
"9358 books & reference \n",
"9359 lifestyle \n",
"\n",
"[9360 rows x 9 columns]"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[\"Reviews\"] = pd.to_numeric(data[\"Reviews\"], errors='coerce')\n",
"max_value = data[\"Reviews\"].max()\n",
"min_value = data[\"Reviews\"].min()\n",
"data[\"Reviews\"] = (data[\"Reviews\"] - min_value) / (max_value - min_value)\n",
"\n",
"data[\"Installs\"] = pd.to_numeric(data[\"Installs\"], errors='coerce')\n",
"max_value = data[\"Installs\"].max()\n",
"min_value = data[\"Installs\"].min()\n",
"data[\"Installs\"] = (data[\"Installs\"] - min_value) / (max_value - min_value)\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>App</th>\n",
" <th>Category</th>\n",
" <th>Rating</th>\n",
" <th>Reviews</th>\n",
" <th>Installs</th>\n",
" <th>Type</th>\n",
" <th>Price</th>\n",
" <th>Content Rating</th>\n",
" <th>Genres</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>9360</td>\n",
" <td>9360</td>\n",
" <td>9360.000000</td>\n",
" <td>9360.000000</td>\n",
" <td>9360.000000</td>\n",
" <td>9360</td>\n",
" <td>9360</td>\n",
" <td>9360</td>\n",
" <td>9360</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>8174</td>\n",
" <td>33</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>73</td>\n",
" <td>6</td>\n",
" <td>115</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>roblox</td>\n",
" <td>family</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>free</td>\n",
" <td>0</td>\n",
" <td>everyone</td>\n",
" <td>tools</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>9</td>\n",
" <td>1746</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>8715</td>\n",
" <td>8715</td>\n",
" <td>7414</td>\n",
" <td>732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.191838</td>\n",
" <td>0.006581</td>\n",
" <td>0.017909</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.515263</td>\n",
" <td>0.040239</td>\n",
" <td>0.091266</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.000000</td>\n",
" <td>0.000002</td>\n",
" <td>0.000010</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.300000</td>\n",
" <td>0.000076</td>\n",
" <td>0.000500</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4.500000</td>\n",
" <td>0.001044</td>\n",
" <td>0.005000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" App Category Rating Reviews Installs Type Price \\\n",
"count 9360 9360 9360.000000 9360.000000 9360.000000 9360 9360 \n",
"unique 8174 33 NaN NaN NaN 2 73 \n",
"top roblox family NaN NaN NaN free 0 \n",
"freq 9 1746 NaN NaN NaN 8715 8715 \n",
"mean NaN NaN 4.191838 0.006581 0.017909 NaN NaN \n",
"std NaN NaN 0.515263 0.040239 0.091266 NaN NaN \n",
"min NaN NaN 1.000000 0.000000 0.000000 NaN NaN \n",
"25% NaN NaN 4.000000 0.000002 0.000010 NaN NaN \n",
"50% NaN NaN 4.300000 0.000076 0.000500 NaN NaN \n",
"75% NaN NaN 4.500000 0.001044 0.005000 NaN NaN \n",
"max NaN NaN 5.000000 1.000000 1.000000 NaN NaN \n",
"\n",
" Content Rating Genres \n",
"count 9360 9360 \n",
"unique 6 115 \n",
"top everyone tools \n",
"freq 7414 732 \n",
"mean NaN NaN \n",
"std NaN NaN \n",
"min NaN NaN \n",
"25% NaN NaN \n",
"50% NaN NaN \n",
"75% NaN NaN \n",
"max NaN NaN "
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe(include='all')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Splitting into test, train, validation sets"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data shape: (9360, 9)\n",
"Train shape: (5616, 9)\n",
"Test shape: (1872, 9)\n",
"Validation shape:(1872, 9)\n"
]
}
],
"source": [
"import numpy as np\n",
"\n",
"np.random.seed(123)\n",
"train, validate, test = np.split(data.sample(frac=1, random_state=42), [int(.6*len(data)), int(.8*len(data))])\n",
"print(f\"Data shape: {data.shape}\\nTrain shape: {train.shape}\\nTest shape: {test.shape}\\nValidation shape:{validate.shape}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}