黑马程序B站学习笔记之数据分析

黑马程序B站学习笔记之数据分析

目录

黑马程序B站学习笔记之数据分析

导包

一、数据加载(Category是data数据集中的一列)

二、数据处理、清洗

三、数据分析和可视化

四、得出结论


导包

Import  numpy  as  np

Import  pandas  as  pd

Import  matplotlib.pyplot  as  plt

Import  seaborn  as  sns

一、数据加载(Category是data数据集中的一列)

 

  1. 读取数据 data  =  pd.read_csv(‘文件’,encoding=”编码”)
  2. 查看数据的前五条,data.head() 、  全部数据,data、    几行几列,data.shape()
  3. 筛选 data[筛选条件]  例:data[data[‘price’]>0]
  4. 查看该列有多少种类  例:data[“Category”].unique()  种类数量.nunique()   

二、数据处理、清洗

因为你拿到的数据并不是标标准准的,记录错误,格式错误,缺少错误,所以需要先去规范所需数据,去处理。

 

数据筛选查看,发现Category是1.9,是异常列

1、对于异常错误数据,定位,并向后移数据,最后重新赋值覆盖给该行

data[data[‘Category’]==’1.9’].loc[10472,”Cate”:]

data[data[‘Category’]==’1.9’].loc[10472,”Cate”:].shift()

data.loc[10472,”Category”]  =  data[data[‘Category’]==’1.9’].loc[10472,”Cate”:].shift()

2、删除重复的行,最后重新覆盖数据

查看重复行  data.duplicated()  True有重复行

查看重复行总数 data.duplicated().sum()

删除重复行  data.drop_duplicated()

覆盖数据 data  =  data.drop_duplicated()

3、转换纯数字字符串为数值类型

查看数据集每列类型 data.dtypes ,都是object 说明类型都是字符串

 

转换成数组类型  pd.to_numeric(data[‘Rating’])

还是要进行赋值覆盖  data[‘Rating’]  =  pd.to_numeric(data[‘Rating’])

data[ 'Reviews'] == pd. to_ numeric (data[ 'Reviews'] )

4、转换非数字的字符串为数值类型

①Installs中存在,+两个字符

先把特殊字符替换掉 {正则表达式 \d[0-9] \D[^0-9]}

data[‘Installs’] = data[‘Installs’].str.replace(‘\D’,’’).astype(float)  

②Price中存在$

data[‘Price’] = data[‘Price’].str.replace(‘$’,’’).astype(float)

5、转换数据不一致,单位不一样。有纯字符串,还有K、M单位

转换纯字符串的为缺失值  Data[‘Size’]  =  data[‘Size’].replace(‘Varies with device’,np.nan)

统一转换成单位小的

①提取出来数值,对字符串进行操作  

Size_num  =  data[‘Size’].str.extract(r‘([\d\.]+)’,expand=False).astype(float)

②提取出来单位

Size_unit  =  data[‘Size’].str.extract(r’([kM]+)’,expand=False).fillna(1).replace([‘k’,’M’],[1,1024])

③数值*单位  统一数据  

Data[‘Size’]  =  size_num * size_unit

三、数据分析和可视化

1、统计每个类别中 app 的数量,数据透视表 -- 数据汇总,分析类别与数量的关系

category_counts=Data.pivot_table(index=’Category’, value=’App’, aggfunc=’count’)

排序  category_counts.sort_values(by=’App’,ascending=False)   根据App数量倒叙排列

调整画布 plt.figure(figsize=(10,10))

Sns中计数函数Sns.countplot(y=’Category’, data=data)

2、计算每一类 app 的平均安装次数 分析类别与安装量的关系

Data.pivot_table(index=’Category’, values=’Installs’, aggfunc=’mean’).sort_values(by=’Installs’)

3、分析评分与安装之间的关系

调整画布:plt.figure(figsize=(10,10))

散点图:Plt.scatter(x=data[‘Rating’],y=data[‘installs’], color=’blue’)

折线图:Sns.lineplot(x=’Rating’,y=’Installs’,data=data,color=’red’)

对数处理:Plt.yscale(‘log’)

 

4、分析评论数与Installs之间的关系

Plt.figure(figsize=(10,10))

Sns.lineplot(x=’Reviews’, y=’Installs’,data=data)

Plt.yscale(‘log’)

Plt.xscale(‘log’)

 

5、线性回归

Sns.lmplot(x=’Reviews’, y=’Installs’,data=data)

Plt.yscale(‘log’)

Plt.xscale(‘log’)

 

6、分析收费情况Type和价钱Price 与 Installs 之间的关系

#Type 有两种类型 Paid、Free

#安装量 大于10W 的app数量  和  安装量小于10w 的各是多少?

data[‘Installs-10w’]=Data[‘Installs’].map(lambda x: ‘大于等于10w’ if x > 1e5 else ‘小于10w’)

Sns.countplot(x=’Type’,hue=’Installs-10w’,data=data)   hue为额外的排列

 

7、分析付费数据

Sns.lineplot(x=’Price’,y=’Installs’,data=data)

 

重点看一下Price【0-10】的数据

G=Sns.lineplot(x=’Price’,y=’Installs’,data=data)

G.set(xlim=(0,10))

 

 

四、得出结论

3.3结论——

在1.5-4.7之间,分数越高,安装量就越高

如 app 的评分单纯很高,但是安装量很少。因为安装人数少,但评分很高。

3.4结论——

App评论数越多,下载量越多

3.7结论——

价格越高,安装量越低。

如果app需要设置为付费下载,定的价格不能太高,最好在1美元以下

 

总结论:

  1. 评分在2.7-4.7 之间
  2. 评论量多
  3. 如果收费,费用不要太高,最好不超过1美元
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值