YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
EDA-on-Google-PlayStore
#impoting the library
import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore')
df = pd.read_csv("googleplaystore.csv") #data from csv file df.columns df.head() df.describe() #stats inform for numerical data #five point summary
df.duplicated().sum()
df = df.drop_duplicates()
df
df['Content Rating'].dtype
df['Reviews']
df['Reviews'].dtype
type(df.Reviews)
df.Reviews
df[~df.Reviews.str.isnumeric()]
df_copy = df.copy()
df_copy
#restting the index as after dropping duplicates original index is still there
df_copy.reset_index(drop = True, inplace=True)
df_copy
df_copy[df_copy.Reviews.str.isnumeric()]
df_copy = df_copy.drop(df_copy.index[9990])
df_copy[df_copy.Reviews.str.isnumeric()]
df_copy['Reviews'] = df_copy['Reviews'].astype(int)
df_copy.Reviews.dtype
df_copy.info()
df_copy["Size"].unique()
item = '19M'
item[-1]
item.replace('M', '')
#1 MB = 1024 KB\
def size_process(item): if str(item)[-1] == 'M': res = float(str(item).replace('M', '')) res = res*1024 return res elif str(item)[-1] == 'k': res = float(str(item).replace('k', '')) return res else: return str(np.NaN)
df_copy['Size'] = df_copy['Size'].apply(size_process) df_copy.Size.dtype df_copy.Size = df_copy.Size.astype('float') df_copy.Size.dtype df_copy.info() df_copy['Installs'] df_copy['Installs'] = df_copy['Installs'].str.replace("+", "").str.replace(",", "") df_copy['Installs'].astype(int) df_copy["Price"].unique()
char_to_remove = ["+", ",", "$"] cols_to_remove = ["Installs", "Price"]
for char in char_to_remove: for col in cols_to_remove: df_copy[col] = df_copy[col].str.replace(char, "")
df_copy['Installs'] = df_copy['Installs'].astype(int)
df_copy['Price'] = df_copy['Price'].astype(float)
df_copy['Last Updated'] df_copy['Last Updated'] = pd.to_datetime(df_copy['Last Updated']) df_copy['day'] = df_copy['Last Updated'].dt.day df_copy['month'] = df_copy['Last Updated'].dt.month df_copy['year'] = df_copy['Last Updated'].dt.year df_copy.dtypes df_copy['Android Ver'].unique() df_copy['Android Ver'] = df_copy['Android Ver'].str.replace("and up", "").str.replace("Varies with device","") df_copy['Android Ver'].unique() df_copy.App df[df.duplicated("App")]
df_copy = df_copy.drop_duplicates(subset = ["App"], keep = 'first')
df_copy[df_copy.duplicated("App")]
df_copy.dtypes
df_copy.columns
#EDA
categorical_features = [feature for feature in df_copy.columns if df_copy[feature].dtype == 'O']
numerical_features = [feature for feature in df_copy.columns if df_copy[feature].dtype != 'O']
numerical_features
df_copy[categorical_features]
#categroical feature analysis
df_copy["Type"].value_counts(normalize = True)*100
for col in categorical_features: print(f"{col} : {df_copy[col].value_counts(normalize = True)*100}")
df_copy["Android Ver"].value_counts(normalize = True)*100
df_copy["Type"].value_counts(normalize = True)*100
#Q. Which category is the most popular category in the app?
#pie chart
df_copy["Category"].value_counts().plot.pie(y = df["Category"], figsize = (12, 12), autopct = '%1.1f%%')
#family is the most popular category with 19 % of share
#Q. what is the top 10 important category
cat = df_copy["Category"].value_counts()[:10]
category = cat.reset_index()
category.columns = ["Groups", "count"]
sns.barplot(category, x = category['Groups'], y = category['count'])
#data from google playstore csv file