数据特征分析技能—— 帕累托分析

数据特征分析技能—— 帕累托分析

又称ABC分类库存控制法,主次因分析法,20/80定律等。
- 一般来说投入产出,努力和报酬之间并不是绝对的线性关系,总有一些关键因素起着至关重要的作用,而帕累托分析就是找到影响事务的关键因素,分清主次。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
data = pd.Series(np.random.randn(10)*1200+3000,
                index = list('ABCDEFGHIJ'))
print(data)
print('------')
# 创建数据,10个品类产品的销售额     
A    4227.860851
B    2582.173709
C    2431.589118
D    3725.386366
E     848.267657
F     648.974723
G    2988.175001
H    4479.455210
I    3713.673048
J    3703.391283
dtype: float64
------
# 第一步:排序
data.sort_values(ascending=False,inplace=True)

plt.figure(figsize=(10,6))
data.plot(kind='bar',color='g',width=0.8,rot=0)

# 第二步:创建累计占比
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)
# 输出决定性因素产品
超过80%累计占比的节点值索引为: B
超过80%累计占比的节点值索引位置为: 6
------
核心产品为:
H    4479.455210
A    4227.860851
D    3725.386366
I    3713.673048
J    3703.391283
G    2988.175001
B    2582.173709
dtype: float64

这里写图片描述

猜你喜欢

转载自blog.csdn.net/ICERON/article/details/80177306