特征分析(异常值分析:箱形图,相关性分析,贡献度,周期性分析)

一.箱形图:用于看数据有没有异常值,异常值校验,可以分析出数据质量

#原理:超过上届和下界的值为异常值。上界=上四分位数+1.5*IQR; 下界=下四分位数-1.5*IQR
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_excel('base.xlsx')
df=df.set_index('year')#将year设为索引
plt.rcParams['font.sans-serif']=['SimHei']#显示中文
plt.rcParams['axes.unicode_minus']=False
print(df)
df.boxplot()

二.贡献度分析,帕累托图:用于计算出所有类型的服装中贡献80%利润的服装,从而侧重提高贡献利润较多的服装的投入

#使用的数据:每个商品的盈利总额
#原理:在总体贡献利润100%中,有80%的利润都是来自20%最火的商品,而其他80%的商品只贡献了20%的利润
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#显示中文
plt.rcParams['axes.unicode_minus']=False

df1=pd.read_excel('cloths.xlsx',index_col='服装名')
data=df1['盈利'].copy()
data=data.sort_values(ascending=False)
plt.figure()
data.plot(kind='bar') #用data的值绘制柱状图 (data中只有年份和每年乘客的数量)

p=1.0*data.cumsum()/data.sum() #计算的是累积和与总和的占比。也就是该值的累积和占总体的比例。其实目的是为了计算出贡献了80%的利润,比值小于80的即为贡献的目标
p.plot(color='r', secondary_y=True,style='-o',linewidth=2)

plt.annotate(format(p[5],'.4%'),xy=(7,p[5]),xytext=(7*0.9,p[5]*0.9),arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
print(data)
plt.show()

#由此结论可以得到,可以增加开衫到长袖的量(因为他们贡献的利润最多),减少卫衣和连体裤的进货量

三.相关系数:可以判断两个菜品的相关性,从而可以实现哪些菜品可以搭配出现

#使用的数据:多个类要在周期性的变化
#原理:分析菜品的相关系数,从而实现搭配菜品推荐
#|r| >0.8 时,视为高度相关;
# 0.5 < |r| ≤0.8 时, 视为中度相关;
# 0.3 < |r| ≤  5时,视为低度相关; 
# |r| ≤ 0.3 时,说明两个变量之间的相关程度极弱,可视为不相关

import pandas as pd
data1=pd.read_excel('data2.xlsx')
print(data1)
# print(data1.corr())  # 相关系数矩阵,即给出了任意两款菜式之间的相关系数
print(data1.corr()['铁板烧豆腐'])  # 只显示“铁板烧豆腐”与其他菜式的相关系数
#结论:发现“铁板烧豆腐”与“酱香凤爪”的相关度为:0.833 呈现高度相关,所以这两个菜可以搭配出现

四.周期性分析:展示出周期内(可以以周,月,年单位为周期)数据变化的特征,从而可以实现景区对人流量分布做出相应的管理措施

#原理:需要有时间和数量的数据,将时间的范围显示周期性的,即可看数量的变化,即得“数量的周期性变化”
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('data4.xlsx')
print(df)
plt.figure(figsize=(8,4),dpi=100)
plt.plot(df['日期'],df['人流量'])
plt.xticks(pd.date_range("2019-03-03","2019-03-31",freq='7d')) #让数据显示周期性的变化,freq参数的意思是设置周期的范围为“七日”为一周期
plt.show()
#有结论可以的得到,人流量为周期性变化,周末景区的人流量均多,工作日的人流量偏少。可以适当调整景区的相应措施对付人流量。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值