APP Store案例数据分析

1. 数据清洗

示例代码:

import pandas as pd

#  读取数据
app = pd.read_csv('../data/excel_data/applestore.csv')
app.info()

#发现了unname 0这个奇怪的变量,需要进行清理
app.drop('Unnamed: 0', axis=1, inplace=True)
#drop默认是对行
#inplace表示直接替换掉原有数据
#同样可以用位置来举
#app.drop(app.columns[0],axis=1,inplace=True)
app.head()

# 考虑将sizebytes变成mb,新增数据
app['size_mb'] = app['size_bytes'] / (1024 * 1024.0)
app.size_mb.describe()

# 根据价格新增标签
app['paid'] = app['price'].apply(lambda x: 1 if x > 0 else 0)
#lambda阐述规则,X为price,为paid赋值,即当price>0,paid为1,其他情况下,paid为0
app.paid.describe()

2. 单变量分析

示例代码:

#value_counts (price,prime_genre)
#value_Coutn只能对应series,不能对整个dataframe做操作
app.price.value_counts()

# 价格>50的比较少
#数据的快速分组
bins = [0,2,10,300]
labels = [  '<2', '<10','<300']
app['price_new'] = pd.cut(app.price, bins, right=False, labels=labels)
#分组后查看数据分布情况
app.groupby(['price_new'])['price'].describe()

# groupby的操作,不同类别app的价格分布
app.groupby(['prime_genre'])['price'].describe()

#删除价格大于等于49.99的app
app=app[app['price']<=49.99]

#评论情况分析
app.rating_count_tot.describe()

#对用户打分的分组
bins = [0,1000,5000,100000,5000000]
app['rating_new']=pd.cut(app.rating_count_tot, bins, right=False)

#用户打分和价格的关系
app.groupby(['rating_new'])['price'].describe()

 3. 业务数据可视化

示例代码:

#可视化部分
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
#app评分关系
plt.figure(figsize=(30,20))#调整大小
sns.relplot(x="prime_genre", y="user_rating",kind='line', data=app) #折线图

app1=app[app['price']<=9.99]
#直方图,APP价格的分布
sns.distplot(app1['price'])

#箱线图,不同类别APP价格
plt.figure(figsize=(10,8))#调整大小
sns.boxplot(x='price',y='prime_genre',data=app[app['paid']==1]) # 价格绝大部分都集中在9.99美元以内,个别类别(如医疗)等因专业性总体价格会高于其他类别

#散点图,价格和用户评分的分布
sns.scatterplot(x='price',y='user_rating',data=app)

#只保留五个类别数据
top5= ['Games','Entertainment', 'Education', 'Photo & Video', 'Utilities']
app5 = app[app.prime_genre.isin(top5)]

#柱状图,前5个类别app的用户评分均值
#同一类别,将免费和付费的评分进行对比
plt.figure(figsize=(10,8))
sns.barplot(x='prime_genre',y='user_rating',hue='paid',data=app5)

#使用countplot--count是对数据加总,plot将数据进行可视化
#使用order对数据进行排序

plt.figure(figsize=(20,10))
sns.countplot(y='prime_genre',hue='paid',data=app,order=app['prime_genre'].value_counts().index)
plt.tick_params(labelsize=20)

#  免费与收费的APP在不同评分区间的分布
bins=[0,0.1,2.5,4.5,5]
app['rating_level']=pd.cut(app.user_rating,bins,right=False)
app.groupby(['rating_level'])['user_rating'].describe()

sns.countplot(x='paid',hue='rating_level',data=app)

#  APP的大小和用户评分之间的关系
q4=['user_rating','price','size_mb']
app[q4].corr()

#热力图,展现变量之间两两之间关系的强弱
sns.heatmap(app[q4].corr())  # 大小价格都不和评分没有直接关系,但是价格和大小之间有正相关关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值