帕累托分析
帕累托图在概念上与帕累托法则有关。帕累托法则认为,相对少量的原因通常造成大多数的问题或缺陷。该法则通常称为80/20原则,即80%的问题是由20%的原因导致的。帕累托图也用于汇总各种类型的数据,并进行80/20分析。
(1)创建数据
# 帕累托分布分析
data = pd.Series(np.random.randn(10)*1200+3000,
index = list('ABCDEFGHIJ'))
print(data)
print('------')
# 创建数据,10个品类产品的销售额
data.sort_values(ascending=False, inplace= True)
# 由大到小排列
plt.figure(figsize = (10,4))
data.plot(kind = 'bar', color = 'g', alpha = 0.5, width = 0.7)
plt.ylabel('营收_元')
# 创建营收柱状图
p = data.cumsum()/data.sum() # 创建累计占比,Series
key = p[p>0.8].index[0]
key_num = data.index.tolist().index(key)
print('超过80%累计占比的节点值索引为:' ,key)
print('超过80%累计占比的节点值索引位置为:' ,key_num)
print('------')
# 找到累计占比超过80%时候的index
# 找到key所对应的索引位置
p.plot(style = '--ko', secondary_y=True) # secondary_y → y副坐标轴
plt.axvline(key_num,hold=None,color='r',linestyle="--",alpha=0.8)
plt.text(key_num+0.2,p[key],'累计占比为:%.3f%%' % (p[key]*100), color = 'r') # 累计占比超过80%的节点
plt.ylabel('营收_比例')
# 绘制营收累计占比曲线
key_product = data.loc[:key]
print('核心产品为:')
print(key_product)
# 输出决定性因素产品