Reading guide ： This article takes you to Python Do contribution analysis . Contribution analysis is also called Pareto analysis , Its principle is Pareto's law , also called 20/80 The laws of .
author ： Zhang Liangjun Tan Liyun Liu Mingjun Jiang Jianming
source ： big data DT（ID：hzdashuju）
The same investment in different places will produce different benefits . for example , For a company ,80% The profits of the company often come from 20% Best selling product , Others 80% Our products only produce 20% The profits of the .
As far as catering enterprises are concerned , The application of contribution analysis can focus on improving the highest profit of a certain cuisine 80% The dishes , Or focus on the development of the most comprehensive impact of 80% The department in charge of the . This result can be presented intuitively by Pareto Diagram . chart 3-10 It's the seafood series of one month 10 A dish A1～A10 The profit of （ It has been sorted in descending order ）.
▲ chart 3-10 Pareto chart of food profit data
From the figure 3-10 You know , variety of dishes A1～A7 common 7 A dish , It's the number of dishes 70%, The total profit accounts for the month's profit 85.0033%. According to Pareto's law , We should increase the number of dishes A1～A7 Cost input of , Cut down on dishes A8～A10 Cost input of , In order to get a higher profit .
surface 3-5 It's the food profit data corresponding to the catering system , Draw a Pareto chart of food profit , Such as code list 3-8 Shown .
▼ surface 3-5 Food profit data of catering system
# Pareto chart of food profit data import pandas as pd # Initialize parameters dish_profit = '../data/catering_dish_profit.xls'# Food and beverage profit data data = pd.read_excel(dish_profit, index_col=' Dish name ') data = data[' profit '].copy() data.sort_values(ascending=False) import matplotlib.pyplot as plt # Import image library plt.rcParams['font.sans-serif'] = ['SimHei'] # Used to display Chinese labels normally plt.rcParams['axes.unicode_minus'] = False # Used to display negative sign normally plt.figure() data.plot(kind='bar') plt.ylabel(' profit （ element ）') p = 1.0*data.cumsum()/data.sum() p.plot(color='r', secondary_y=True, style='-o',linewidth=2) plt.annotate(format(p, '.4%'), xy=(6, p), xytext=(6*0.9, p*0.9), arrow-props=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) # Add notes , namely 85% Mark at . This includes the specified arrow style . plt.ylabel(' profit （ The proportion ）') plt.show()
About author ： Zhang Liangjun , Senior big data mining and Analysis Expert 、 Pattern recognition experts 、AI technician . Yes 10 Years of big data mining and analysis experience , Good at Python、R、Hadoop、Matlab And so on , Machine learning, etc AI Technology driven data analysis also has in-depth research .
This article is excerpted from 《Python Data analysis and mining practice 》（ The first 2 edition ）, Issued under the authority of the publisher .
This article is from WeChat official account. - big data （hzdashuju） , author ： Zhang Liangjun Tan Liyun etc.
The source and reprint of the original text are detailed in the text , If there is any infringement , Please contact the [email protected] Delete .
Original publication time ： 2020-11-06
Participation of this paper Tencent cloud media sharing plan , You are welcome to join us , share .