{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1f25e199",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c4af3127",
   "metadata": {},
   "outputs": [],
   "source": [
    "class DataLoader:\n",
    "    \"\"\"\n",
    "    This class used to load dataset from directory\n",
    "\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, ds_name):\n",
    "        self.part1_dir = \"./dataset/Part1.csv\"\n",
    "        self.part2_dir = \"./dataset/Part2.csv\"\n",
    "        self.part3_dir = \"./dataset/Part3.csv\"\n",
    "        self.allparts_dir= \"./dataset/Googple-Playstore-Dataset.csv\"\n",
    "        self.dataset_name = ds_name\n",
    "        self.dataframe=None\n",
    "        \n",
    "        if self.dataset_name == \"part1\":\n",
    "            self.dataframe = self._read_dataset(self.part1_dir)\n",
    "        elif self.dataset_name == \"part2\":\n",
    "             self.dataframe = self._read_dataset(self.part2_dir)\n",
    "        elif self.dataset_name == \"part3\":\n",
    "            self.dataframe = self._read_dataset(self.part3_dir)\n",
    "        elif self.dataset_name == \"allparts\":\n",
    "            self.dataframe = self._read_dataset(self.allparts_dir)\n",
    "            \n",
    "        if self.dataframe is None:\n",
    "            raise ValueError(\"invalid dataset directory\")\n",
    "    \n",
    "    def _read_dataset(self, file_dir):\n",
    "        print ('Dataset is loading ...')\n",
    "        self.dataframe = pd.read_csv(file_dir)\n",
    "        return self.dataframe\n",
    "    \n",
    "    def get_dataframe(self):\n",
    "        return self.dataframe\n",
    "    \n",
    "    def __del__(self):\n",
    "        print(\"Destructor called\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "45320aa5",
   "metadata": {},
   "outputs": [],
   "source": [
    "class PreProcessing:\n",
    "    \"\"\"\n",
    "    This class used to clean dataset\n",
    "\n",
    "    \"\"\"\n",
    "    \n",
    "    def _drop_unwanted_cols(self, df):\n",
    "        df.drop(['Developer Website', 'Developer Email' ,'Minimum Android', 'Last Updated', 'Privacy Policy', 'Scraped Time'], axis=1, inplace=True)\n",
    "        return df\n",
    "        \n",
    "    def _remove_duplicates(self, df):\n",
    "        df.drop_duplicates(inplace=True)\n",
    "        return df\n",
    "        \n",
    "    def _display_missed(self, df):\n",
    "        print(df.isnull().sum())\n",
    "    \n",
    "    def find_data_to_replacement(self, df, colname):\n",
    "        pd.set_option('display.float_format', '{:.2%}'.format)\n",
    "        print(df[colname].value_counts(normalize = True))\n",
    "        pd.reset_option('display.float_format')\n",
    "        print(df[colname].value_counts())\n",
    "        print(df[colname].describe())\n",
    "        print(df[colname].mode())\n",
    "        \n",
    "    def _remove_missed(self, df):\n",
    "        df.dropna(inplace=True)\n",
    "        return df\n",
    "        \n",
    "    def _replacements_changetypes(self, df):\n",
    "      #df.groupby(by='Category').sum()\n",
    "        df['App Name'].fillna(value=\"undefined\", inplace=True)\n",
    "\n",
    "        df['Rating'].fillna(value=df['Rating'].mean(), inplace=True)\n",
    "\n",
    "        df['Rating Count'].fillna(value=df['Rating Count'].mean(), inplace=True)\n",
    "\n",
    "        df['Installs'].fillna('0', inplace=True)\n",
    "        df['Installs'] = df['Installs'].astype(str).str.replace('[^\\w\\s]','',regex=True)\n",
    "        df['Installs'] = df['Installs'].astype(float)\n",
    "\n",
    "        df['Minimum Installs'].fillna(value=df['Installs'], inplace=True)\n",
    "        df['Minimum Installs'] = df['Minimum Installs'].astype(int)\n",
    "\n",
    "        df['Maximum Installs'].fillna(value=df['Installs'], inplace=True)\n",
    "        df['Maximum Installs'] = df['Maximum Installs'].astype(int)\n",
    "        \n",
    "        df['Price'].fillna('0',inplace = True)\n",
    "        \n",
    "        df['Currency'].fillna(value=df['Currency'].mode()[0], inplace=True) #top = mode\n",
    "        \n",
    "        df['Size'] = df['Size'].astype(str).str.replace('\\d*k$','1',regex=True)\n",
    "        df['Size'] = df['Size'].astype(str).str.replace('M|m','',regex=True)\n",
    "        df['Size'] = pd.to_numeric(df['Size'], errors='coerce',downcast='float')\n",
    "        df['Size'] = df['Size'].fillna(df['Size'].mode()[0]) \n",
    "        \n",
    "        df['Developer Id'].fillna(value=\"undefined\", inplace=True)\n",
    "        \n",
    "        df['Released'].fillna(value=df['Released'].mode()[0], inplace=True) #top = mode\n",
    "\n",
    "        return df\n",
    "\n",
    "    \n",
    "    def printinfo(self, df):\n",
    "        print('information about current dataset:')\n",
    "        info = pd.DataFrame(index=df.columns)\n",
    "        info['data_type'] = df.dtypes\n",
    "        info['null_count'] = df.isnull().sum()\n",
    "        info['unique_count'] = df.nunique()\n",
    "        print(info)\n",
    "\n",
    "    def clean1(self, df):\n",
    "        self._drop_unwanted_cols(df)\n",
    "        self._remove_duplicates(df)\n",
    "        self._remove_missed(df)\n",
    "        return df\n",
    "        \n",
    "    def clean2(self, df):\n",
    "        self._drop_unwanted_cols(df)\n",
    "        self._remove_duplicates(df)\n",
    "        self._replacements_changetypes(df)\n",
    "        return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e2401a72",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dataset is loading ...\n",
      "information about current dataset:\n",
      "                 data_type  null_count  unique_count\n",
      "App Name            object           0       2177945\n",
      "App Id              object           0       2312944\n",
      "Category            object           0            48\n",
      "Rating             float64           0            43\n",
      "Rating Count       float64           0         38483\n",
      "Installs           float64           0            22\n",
      "Minimum Installs     int32           0            21\n",
      "Maximum Installs     int32           0        251563\n",
      "Free                  bool           0             2\n",
      "Price              float64           0          1063\n",
      "Currency            object           0            15\n",
      "Size               float32           0           601\n",
      "Developer Id        object           0        758372\n",
      "Released            object           0          4158\n",
      "Content Rating      object           0             6\n",
      "Ad Supported          bool           0             2\n",
      "In App Purchases      bool           0             2\n",
      "Editors Choice        bool           0             2\n",
      "(2312944, 18)\n"
     ]
    }
   ],
   "source": [
    "#preprocess.find_data_to_replacement(df, 'Rating Count')\n",
    "dataloader = DataLoader('allparts')\n",
    "df = dataloader.get_dataframe()\n",
    "preprocess = PreProcessing()\n",
    "df = preprocess.clean2(df)\n",
    "preprocess.printinfo(df)\n",
    "print(df.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7fd8228",
   "metadata": {},
   "source": [
    "# Question 1 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "8f19b003",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_adsup = df.loc[df['Ad Supported'] == True] # filtering \n",
    "categories_groups = df_adsup.groupby(by='Category').mean()\n",
    "categories_groups=categories_groups[['Rating','Rating Count','Installs']]\n",
    "\n",
    "categories_groups[\"popularity criteria\"] = ((categories_groups['Rating']/5)*(categories_groups['Rating Count']/categories_groups['Rating Count'].max()))+((categories_groups['Installs']/categories_groups['Installs'].max())*(categories_groups['Installs']/categories_groups['Installs'].max()))\n",
    "categories_groups.sort_values('popularity criteria',ascending=False,inplace=True)\n",
    "categories_groups = categories_groups.iloc[:12,:]\n",
    "plt.bar(categories_groups.index,categories_groups[\"popularity criteria\"])\n",
    "plt.xticks(rotation=90)\n",
    "pass # for avoiding the print"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "89a896ef",
   "metadata": {},
   "source": [
    "# Question 2 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "5a83b14f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n",
       " [Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, ''),\n",
       "  Text(0, 0, '')])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rating_corr = df_adsup.corr(method = 'pearson')[\"Installs\"]\n",
    "\n",
    "rating_corr = rating_corr.sort_values(ascending=False)\n",
    "rating_corr = rating_corr.iloc[1:] # removing the column it self\n",
    "\n",
    "plt.bar(rating_corr.index,rating_corr)\n",
    "plt.xticks(rotation=90)\n",
    "# rating_corr"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4974428c",
   "metadata": {},
   "source": [
    "# Question 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6fb30e92",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "content_rating_groups = df_adsup.groupby(by = 'Content Rating').mean()\n",
    "content_rating_groups[\"popularity criteria\"] = ((content_rating_groups['Rating']/5)*(content_rating_groups['Rating Count']/content_rating_groups['Rating Count'].max()))+((content_rating_groups['Installs']/content_rating_groups['Installs'].max())*(content_rating_groups['Installs']/content_rating_groups['Installs'].max()))\n",
    "content_rating_groups\n",
    "content_rating_groups.sort_values('popularity criteria',ascending=False,inplace=True)\n",
    "content_rating_groups = content_rating_groups.iloc[:12,:]\n",
    "plt.bar(content_rating_groups.index,content_rating_groups[\"popularity criteria\"])\n",
    "plt.xticks(rotation=45)\n",
    "pass # for avoiding the print"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d6f22141",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "21730d7f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.10.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
