python 基金数据分析_Python基金会和数据分析-实践,python,基础,与,篇
案例:App Store评分数据
项目背景:
如今想在手机应用商店上成为成功的应用越来越困难。对app下载和评分数据的分析成为帮助app开发者获取和留存用户的重要工具。Play商店应用数据具有巨大的潜力,可以推动应用制作业务取得成功。可以为开发人员提供可操作的见解,以便开发和捕获移动市场。
针对性回答三个问题
1.免费和收费的app都集中在哪些类别?
2.收费app的价格分布是如何的?不同类别的价格分布是怎样的?
3.App文件的大小和价格以及用户评分之间有关系吗?
本课题分析流程

核心变量解释

代码实现来了


#发现这个Unnamed: 0 这个奇怪的变量,需要进行清理 Unnamed: 0表示的是索引,当表里没有就自动添加 inplace表示清理这个变量,然后true是保存在文件里面
data.drop(‘Unnamed: 0’,axis=1,inplace=True)

**清理数据**
在describe中,只对数字型有效



说明一下,这是单位的转换

独立来描述某一个变量

现在来分析价格


来简单说明一下代码的意思


分析app价格单变量分布
#value_counts(price,prime_genre)
#value_coutn只能对应series,不能对整个dataframe做操作,让数据可以罗列出来
第二对它列出来的价格以及对应的个数进行数据清洗
data.price.value_counts()

app类型的判断


作为分析的判断,一般根据题目进行二八原则,可以适当筛选量少的数据
在这里,我们可以删除价格大于49.99的app
data=data[data[‘price’]<=49.99]
,意思就是把小于49.99的app留下来,这个过程不可逆,你可以尝试一下就是把data改为data1

数据的快速分组 bins labels pd.cut(最后)
bins:分组的节点
bins=[0,2,10,300]
labels :方便分组的识别
labels=[’<2’,’<10’,’<300’]
right一般默认为true,也就是每个分组的时候,默认为小于等于
app[‘price_new’]=pd.cut(app.price,bins,right=False,labels=labels)
用group by去查看结果,([‘price_new’])[‘price’]价格分组对应的价格关系
一般语法
data.groupby([‘price_new’])[‘price’].describe()

再来一次groupby的语法说明

重点:以后为了防止找不到之前的数据,进行不可逆的操作的时候,务必注意可以在data改为data1,防止以前的文件不被彻底删除
单变量的分析第二部分是围绕用户评分进行




这是用户打分与价格的关系

可视化数据
如果需要详细解释下这些部分的要素,可以调整的部分(图的大小颜色等),也可以理解为定制化,就是matplotlib中的pyplot
import matplotlib.pyplot as plt
调整不大的,用matplotlib中的seaborn
import seaborn as sns
用处:生成一张图,在notebook中直接显示
%matplotlib inline
折线图
调用sns.relplot函数,kind是线的类型
sns.relplot(x=“prime_genre”,y=“user_rating”,kind=‘line’,data=data)

直方图
调用sns中的displot函数
sns.distplot(data[‘price’])

很明显在直方图中,你看到都是很拥挤的一组数据,现在进行筛选,让数据更清晰显示

结论:
app价格在0-10之间,稳妥的价格是<4.99,大于此价格购买的人群很少
箱线图

很明显,我们y轴上的类别很乱,现在通过figure放大一下

散点图scatterplot
data的数据来源是data

柱状图
plt.figure(figsize=(10,8))
sns.barplot(x=‘prime_genre’,y=‘user_rating’,data=data)

保留五个,做个人
只保留五个类别的数据
top5=[‘Games’,‘Entertainment’,‘Education’,‘Photo&Video’,‘Utilities’]
data5=data[data.prime_genre.isin(top5)]


现在进行付费paid和免费的对比


对数据进行分析,解决业务问题
业务问题1
免费或收费APP集中在哪些类别
第一步:将数据加总成每个类别有多少个app
第二步:从高到低进行排列
第三步:对数据进行可视化
评分高或者评分低的app集中在那些类别
使用countplot–count是对数据加总,plot将数据进行可视化
sns.countplot(y=‘prime_genre’,data=data)

拆分收费或者免费
加上hue=paid

很明显,我们可以在图中看到,显得有点不专业,字体要放大(plt.tick_params(labelsize=20),tick_params类似指针。还要排序
plot里面插入order=data[‘prime_genre’].value_counts().index,就是针对prime_genre,进行统计value_counts,index进行排序

结论:可以知道app都高度集中在游戏类别
免费和收费的app在不同评分区间的分布

0-0.1是指刚上架的app,其它高中低分布

sns.countplot(x=‘paid’,hue=‘rating_level’,data=data)

左边是免费的,右边是付费,彼此还是比较接近的
问题3:APP的大小和用户评分的之间有关系吗
q4=[‘user_rating’,‘price’,‘size_mb’]
计算相关的关系
app[q4].corr

越接近-1,表示越不相关
越接近1,表示越相关
热力图(heatmap),展现变量之间两两相关关系的强弱

结论:越深色表示彼此的相关性越不强,越浅表示越相关
项目总结

更多推荐
所有评论(0)