AppStore付费App数据的可视化分析
文章链接:
项目描述:
数据集来源: 来自Kaggle的苹果App Store数据集,内含约7200条数据
项目背景: 苹果手机市场的占比为43%(安卓53.2%),为了抢占市场份额,针对手机app的数据分析不可或缺. 这也是在竞争激烈的市场环境,让自己的产品生存下来并且能够遇见未来危机的办法之一.
数据背景: 本案例的数据涵盖了超过7000条苹果IOS系统的手机应用详情, 通过分析能够知道一些"好的"App的特点
数据维度: 7197行,16列
需求: 获取数据,了解需求
导入,合并数据
导入数据不赘述, 这里为了后续方便对两个表格重新命名, 并合并两个表:
# 重新命名,方便后续使用
df_app = Mobile_AppStore['AppleStore']
df_description = Mobile_AppStore['appleStore_description']
# 合并数据集
df_app['app_desc'] = df_description['app_desc']
查看数据,发现有一列"Unnamed:0"多余,删掉
还有"currency"货币类型全是"USD",没有分析价值,删掉该列
# 1. 删除
# 删除多余的"Unnamed: 0"列
df_app.drop(columns='Unnamed: 0',inplace=True)
#货币类型全是USD,所以这个变量可以直接删掉
df_app.drop(columns='currency',inplace=True)
# 2.新增一列: app的大小以MB为单位计数(生活习惯看MB)
df_app['size_bytes_in_MB'] = round(df_app['size_bytes'] / (1024 * 1024.0),2)
df_app.drop(['size_bytes'],inplace=True,axis=1) # 把原来的按bit算的删掉
1.数据清洗
1.1 重复值
1.检查"id"是否与"trackname"一一对应:
总数共有7197条, 但是"trackname"只有7195条,说明可能不是一一对应的关系,
查看后发现是两个版本不同的同一个软件(id不同),由于之后处理的是付费App,这几个软件(是免费App)不会再看到,所以不作处理.
1.2 缺失值
# 查看缺失值
df_app.isnull().sum() # 没有缺失值(常规)
df_app.info()
看一下总体样本数据, 以价格划分:
总体中,免费App占比为56.36%,比付费占比43.64%要大.说明免费App比付费的要多.
但本次重点关注的是付费App的特点, 所以单独将其提取出来df_Paid
(待完善点: 之后可以拿免费和付费的各个指标做比较(假设检验))
本例不讨论关于版本的问题,所以删掉带"ver"的3个版本相关的变量:
‘ver’,‘rating_count_ver’,‘user_rating_ver’
1.3 异常值
# 检查数据类别:
df_Paid.nunique()
可以得知以下几个是分类变量:(4个)
- vpp_lic, 0/1
- user_rating, 0~5 (0.5/each)
- cont_rating, 4种
- prime_genre , 23种
数值型变量有: (6个)
- ipadSc_urls.num 截屏数
- price(因变量y) 价格
- rating_count_tot 评分总人数
- sup_devices.num 支持设备数
- lang.num 支持语言数
- size_bytes_in_MB App大小
字符串类型:app_desc 不算以上两个任意一个 (1个)
采用箱线图结合变量实际意义,判断数据异常值。绘制箱线图如下:
df_Paid.iloc