## Hand in hand teaching you Pareto analysis with Python

Huazhang Technology 2020-11-16 16:23:02
hand hand teaching pareto analysis

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

• Code list 3-8 Draw Pareto chart of food profit data
```# 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[6], '.4%'), xy=(6, p[6]), xytext=(6*0.9, p[6]*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 .