01 前言
我们每天都在使用从手机应用商店里下载的App,有没有想过什么样的App是最受欢迎的呢?一个最直接的方法,就是前往应用商店,对App的属性进行分析,得出受欢迎的应用的特点,可以辅助新的App开发设计或是掌握当下人们使用App的流行趋势。
Google Play Store 是在国外手机用户下载安卓应用程序的商店,今天的案例是对商店中app的统计数据进行分析,重点掌握业务分析中数据清洗的方法。
公号回复:DT17 获取数据 googleplaystore.csv
02 数据观察
如图所示,App的属性信息在网页可以轻松获取,此份数据也是从网络上爬取下来的。
观察数据,如下图所示,第一行是列名,含有App程序名称,Category类别,Rating评分,Reviews评论数,Size程序大小,Installs安装数量等等,总共有1w条数据。了解数据过后,接下来用Python读取csv文件。
import numpy as np
import pandas as pd
df = pd.read_csv('./googleplaystore.csv',usecols=(0,1,2,3,4,5,6)) # usecols取7列数据
df.head() # 观察前几行数据 了解字段含义
df.describe() # 只有rating列有描述统计 说明其他列的数据类型是字符串
Rating | |
---|---|
count | 9367.000000 |
mean | 4.193338 |
std | 0.537431 |
min | 1.000000 |
25% | 4.000000 |
50% | 4.300000 |
75% | 4.500000 |
max | 19.000000 |
df.count() # 统计每一列的行数 发现Rating行数少一千多行,Type少一行
# 有重复、缺失和异常的数据,接下来需要对数据进行清洗
App 10841
Category 10841
Rating 9367
Reviews 10841
Size 10841
Installs 10841
Type 10840
dtype: int64
03 数据清洗
# 数据清洗,一列一列地进行分析,判断是否有重复值和缺失值以及异常值
# App列清洗,由于Rating 评论数数小于App数,猜测App有重复值
pd.unique(df['App']).size
9660
# 发现App的unique行数是9660,说明有重复值,但是在第一列先不进行去重,因为可能有App名重名的情况,需要结合其他列判断
# Category 列处理
df['Category'].value_counts(dropna=False) # 空值也统计
FAMILY 1972
GAME 1144
TOOLS 843
MEDICAL 463
BUSINESS 460
PRODUCTIVITY 424
PERSONALIZATION 392
COMMUNICATION 387
SPORTS 384
LIFESTYLE 382
FINANCE 366
HEALTH_AND_FITNESS 341
PHOTOGRAPHY 335
SOCIAL 295
NEWS_AND_MAGAZINES 283
SHOPPING 260
TRAVEL_AND_LOCAL 258
DATING