数据分析:帕累托法则分析菜品盈利

贡献度分析又称为帕累托分析。它的原理是帕累托法则,又称20/80定律。同样的投入在不同的地方会产生不同的效益。例如,对一个公司来讲,80%的利润常常来自于20%最畅销的产品,而其他80%的产品只产生了20%的利润
代码源于Python数据分析与挖掘实战

# -*- coding: utf-8 -*-

import pandas as pd
import matplotlib.pyplot as plt

dish_profit = '../data/catering_dish_profit.xls'
data = pd.read_excel(dish_profit, index_col=u'菜品名')
data = data[u'盈利'].copy()    #data类型由DataFrame改变为Series
data.sort_values(ascending=False)  #True表示升序

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure()
data.plot(kind='bar')    #表示图形类型型为竖杆图
plt.ylabel(u'盈利(元)')    #设置当前图形的y轴标签
p = 1.0 * data.cumsum()/data.sum()    #cumsum()返回累积和,用于判断p是否满足帕累托法则
p.plot(color='r', secondary_y=True, style='-o', linewidth=2)    #secondary_y等于True定义y轴将会在右侧

plt.annotate(format(p[6], '.4%'), xy=(6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2'))    #p[6]表示取p的第7点满足帕累托法则即大于80%,.4%表示百分数后有4个小数点,arrowprops用来设置箭头
plt.ylabel(u'盈利(比例)')
plt.show()

猜你喜欢

转载自blog.csdn.net/ericsson_liu/article/details/81173070