![在这里插入图片描述](https://img-blog.csdnimg.cn/f792829e6de640ee895cda7d85146d85.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Luy5aSPIOiTneeesw==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
Mobile APP Store数据集
项目介绍
- 目前手机应用商店里App种类繁多,并且数量也一直在增加,想要成为一款受欢迎的应用越来越困难,因此对APP下载数据和评分数据进行分析成为帮助App开发者获取和留存用户的重要工具。
- 现在我们要对具有代表性的苹果应用商城的App应用进行分析,根据每个app应用的属性进行相关性探索。
数据集介绍
AppleStore数据集包含两个csv文件。
- AppleStore.csv文件中包含的是App的应用程序ID、名称、大小、价格、评分、内容评级、主要类型、支持设备类型数量等信息,共16个维度,7197行数据。
- appStore_desception.csv文件是对16个字段的详细描述。
字段描述
- id:app的编号,每个app只有一个编号
- track_name:app的名称
- size_bytes: 大小(以字节为单位)
- currency:通用货币类型
- price: 价格金额
- rating_count_tot: 用户评分计数(适用于所有版本)
- rating_count_ver:用户评分计数(当前版本)
- user_rating:平均用户评分值(适用于所有版本),取值范围为(0,5],左开右闭区间
- user_rating_ver:平均用户评分值(对于当前版本)取值范围(0,5],左开右闭区间
- ver:当前的版本号
- cont_rating:内容评级(游戏适龄4,9,12,17)
- prime_genre:主要类型
- sup_devices.num:支持设备的数量
- ipadSc_urls.num:截屏展示数量(即在应用详情页的图片数量0-5张)
- lang.num:支持的语言数量
- vpp_lic:启用批量购买程序设备的许可
数据预处理
查看数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
filepath = './dataFile/AppleStore.csv'
df = pd.read_csv(filepath,index_col=0)
print("打印数据的前三行信息:")
df.head(3)
打印数据的前三行信息:
|
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 |
1 |
281656475 |
PAC-MAN Premium |
100788224 |
USD |
3.99 |
21292 |
26 |
4.0 |
4.5 |
6.3.5 |
4+ |
Games |
38 |
5 |
10 |
1 |
2 |
281796108 |
Evernote - stay organized |
158578688 |
USD |
0.00 |
161065 |
26 |
4.0 |
3.5 |
8.2.2 |
4+ |
Productivity |
37 |
5 |
23 |
1 |
3 |
281940292 |
WeatherBug - Local Weather, Radar, Maps, Alerts |
100524032 |
USD |
0.00 |
188583 |
2822 |
3.5 |
4.5 |
5.0.0 |
4+ |
Weather |
37 |
5 |
3 |
1 |
print("数据共有{}行,{}列".format(df.shape[0],df.shape[1]))
数据共有7197行,16列
print("数据集中每列的信息:")
df.info()
数据集中每列的信息:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 7197 entries, 1 to 11097
Data columns (total 16 columns):
id 7197 non-null int64
track_name 7197 non-null object
size_bytes 7197 non-null int64
currency 7197 non-null object
price 7197 non-null float64
rating_count_tot 7197 non-null int64
rating_count_ver 7197 non-null int64
user_rating 7197 non-null float64
user_rating_ver 7197 non-null float64
ver 7197 non-null object
cont_rating 7197 non-null object
prime_genre 7197 non-null object
sup_devices.num 7197 non-null int64
ipadSc_urls.num 7197 non-null int64
lang.num 7197 non-null int64
vpp_lic 7197 non-null int64
dtypes: float64(3), int64(8), object(5)
memory usage: 955.9+ KB
print("数值型列统计信息:")
df.describe()
数值型列统计信息:
|
id |
size_bytes |
price |
rating_count_tot |
rating_count_ver |
user_rating |
user_rating_ver |
sup_devices.num |
ipadSc_urls.num |
lang.num |
vpp_lic |
count |
7.197000e+03 |
7.197000e+03 |
7197.000000 |
7.197000e+03 |
7197.000000 |
7197.000000 |
7197.000000 |
7197.000000 |
7197.000000 |
7197.000000 |
7197.000000 |
mean |
8.631310e+08 |
1.991345e+08 |
1.726218 |
1.289291e+04 |
460.373906 |
3.526956 |
3.253578 |
37.361817 |
3.707100 |
5.434903 |
0.993053 |
std |
2.712368e+08 |
3.592069e+08 |
5.833006 |
7.573941e+04 |
3920.455183 |
1.517948 |
1.809363 |
3.737715 |
1.986005 |
7.919593 |
0.083066 |
min |
2.816565e+08 |
5.898240e+05 |
0.000000 |
0.000000e+00 |
0.000000 |
0.000000 |
0.000000 |
9.000000 |
0.000000 |
0.000000 |
0.000000 |
25% |
6.000937e+08 |
4.692275e+07 |
0.000000 |
2.800000e+01 |
1.000000 |
3.500000 |
2.500000 |
37.000000 |
3.000000 |
1.000000 |
1.000000 |
50% |
9.781482e+08 |
9.715302e+07 |
0.000000 |
3.000000e+02 |
23.000000 |
4.000000 |
4.000000 |
37.000000 |
5.000000 |
1.000000 |
1.000000 |
75% |
1.082310e+09 |
1.819249e+08 |
1.990000 |
2.793000e+03 |
140.000000 |
4.500000 |
4.500000 |
38.000000 |
5.000000 |
8.000000 |
1.000000 |
max |
1.188376e+09 |
4.025970e+09 |
299.990000 |
2.974676e+06 |
177050.000000 |
5.000000 |
5.000000 |
47.000000 |
5.000000 |
75.000000 |
1.000000 |
- 对数值列数据进行查看,price列没有负值,user_rating,user_rating_ver最大最小值均在[0,5],无异常数据
print("数据中重复数据个数:")
df.duplicated().sum()
数据中重复数据个数:
0
特征处理
df['size_mb'] = df['size_bytes']/(1024*1024.0)
df['size_mb'].describe()
count 7197.000000
mean 189.909414
std 342.566408
min 0.562500
25% 44.749023
50% 92.652344
75% 173.497070
max 3839.463867
Name: size_mb, dtype: float64
df['paid'] = df['price'].apply(lambda x:1 if x> 0 else 0)
df['paid'].head()
1 1
2 0
3 0
4 0
5 0
Name: paid, dtype: int64
df['curr_ver'] = df['user_rating_ver']-df['user_rating']
df['curr_ver'].head()
1 0.5
2 -0.5
3 1.0
4 0.5
5 0.5
Name: curr_ver, dtype: float64
探索性分析
pd.DataFrame({
"评分人数最多的10款app":df.sort_values(by='rating_count_tot',ascending=False).head(10)['track_name'].tolist(),
"当前评分最高的10款app":df.sort_values(by='user_rating_ver',ascending=False).head(10)['track_name'].tolist()