十大数据分析模型之【6k 字详解ABC分类法】—— 附加python代码实例

大家好,我是摇光~,用大白话讲解所有你难懂的知识点

最近在看书的时候,看到了一句话,“美国80%的人只掌握了20%的财产,而另外20%的人却掌握了全国80%的财产”;这句话出自于帕累托。

这句话剖析出来就是,小部分总是掌握着事物的决定性作用,大部分其实就是影响较小的次要因素。所以为啥大家都说自己只是社会 NPC 呢…

好了,废话不说了,我们来深度解析一下这句话衍生出来的分类法 —— ABC分类法


一、ABC分类法是什么?

ABC分类法很有意思,他有太多太多的别名,我先列举他的别名,看你是不是见过。

ABC分类法的别名:

  • 帕累托分析法、柏拉图分析、主次因分析法、分类管理法、物资重点管理法、巴雷特分析法、“80对20规则”…

那ABC分类法到底是什么呢?

ABC分类法是什么?

  • 说的官方一点,就是一种基于数理统计的分析方法。
  • 说得简单一点,其实就是让你识别“关键的少数”和“次要的多数”,教你怎么辨别主次。

帕累托分析法的核心思想是什么?

  • 在决定一个事物的众多因素中,识别到少数对事物起决定性的关键因素多数对事物影响较少的次要因素
  • 简单来说:分清主次,抓住重点,区别对待

二、ABC分析法案例

了解了这么多ABC分析法,接下来带你实际操作一下怎么构建ABC分析法算法模型。

1、案例背景

假设你有一家零售商店,拥有100种不同的商品,但是你不知道怎么去管理库存,哪些需要进货多一些,哪些需要少一些。
如果你有每种商品的销售额、库存等数据。你就可以使用ABC分析法,进行优化库存管理,分类管理,增加利润。

2、ABC分析法模型构建步骤解析

1、读取数据:使用pandas库读取包含销售数据、库存数量和单位库存成本的CSV文件。
2、计算占比:计算每个商品的销售额占比、库存成本占比和商品数量占比。
3、定义权重:为销售额、库存成本和商品数量分配权重,这些权重反映了它们在ABC分类中的重要性。
4、计算综合得分:根据权重和占比计算每个商品的综合得分。
5、定义分类阈值:使用pd.qcut函数根据综合得分的百分位数来定义ABC分类的阈值。在这个例子中,A类商品占综合得分前20%,B类占接下来30%(即前50%),C类占剩余50%。
6、分类:根据综合得分将商品分为A、B、C三类。
7、输出分类结果:打印分类后的商品数据,或将其保存到新的CSV文件中。

3、数据准备

首先你得准备数据:商品名称、销售额、库存数量、单位库存成本
在这里插入图片描述

4、导入数据

  • 将数据存入data.xlsx表格,使用pandas的 read_excel 函数导入数据。
import pandas as pd

# 数据包含以下列:商品名称, 销售额, 库存数量, 单位库存成本
data_path = 'data_sale.xlsx'

# 读取销售数据和库存成本数据
data = pd.read_excel(data_path)
df = pd.DataFrame(data)

5、计算占比(销售额占比、库存占比、数量占比)

  • 这里的三个指标,可以根据自身业务的实际情况来进行规划。
  • 比如有些根据销售频率、销售数额来进行指标规划。
# 计算总销售额
total_sales = df['销售额'].sum()
# 计算每个商品的销售额占比
df['销售额占比'] = df['销售额'] / total_sales


# 计算每个商品的库存总成本
df['库存总成本'] = df['库存数量'] * df['单位库存成本']
# 计算每个商品的库存成本占比(相对于总库存成本)
total_inventory_cost = df['库存总成本'].sum()
df['库存成本占比'] = df['库存总成本'] / total_inventory_cost


# 计算每个商品的商品数量占比(相对于总商品数量)
total_quantity = df['库存数量'].sum()
df['数量占比'] = df['库存数量'] / total_quantity

6、定义权重

  • 这个权重的定义也是可以根据自身业务来规范,孰重孰轻可以自己来衡量。
  • 因为对于销售来说,肯定销售额占权重更大,其他的可以少一点,反正总权重加起来为 1 就ok。
  • 这里是销售额权重 0.6,库存成本权重 0.3,商品数量 0.1
# 定义权重,用于综合考虑销售额占比、库存成本占比和商品数量占比
# 这些权重可以根据业务需求进行调整
weight_sales = 0.6  # 销售额的权重
weight_inventory_cost = 0.3  # 库存成本的权重
weight_quantity = 0.1  # 商品数量的权重

7、计算每件商品的综合得分

  • 这里根据上面的占比和权重计算出每个商品的综合得分。
  • 这样就可以根据综合得分算出每件商品的重要性。
# 计算综合得分
df['综合得分'] = df['销售额占比'] * weight_sales + df['库存成本占比'] * weight_inventory_cost + df['数量占比'] * weight_quantity

8、进行 ABC 分类并输出到excel

  • 这里也需要自己定义ABC类 阈值
# 定义ABC分类的阈值
# 这里我们使用综合得分的百分比来定义分类阈值
# 例如,A类商品占综合得分前20%,B类占接下来30%,C类占剩余50%
# 根据综合得分进行分类
df['分类'] = pd.qcut(df['综合得分'],  [0,0.5, 0.8, 1], labels=['A', 'B', 'C'])

# 可选:将分类结果保存到新的CSV文件中
output_path = 'abc_classified_data.xlsx'
df.to_excel(output_path, index=False)
  • 最后输出结果:
    在这里插入图片描述

三、数据分析

最终上面的数据被分成三类,我们要对这三类商品进行不同的处理方法。

A类商品:

  • 由于A类商品销售额占比高,是商店的主要利润来源,因此给予重点关注和管理。

措施

  • 1、优化库存水平,确保A类商品的充足供应,避免缺货现象的发生。
  • 2、加强促销活动,提高A类商品的曝光率和销售量。
  • 3、定期进行市场调研,了解消费者需求的变化,及时调整A类商品的品种和规格。

B类商品:

  • B类商品销售额占比适中,是商店的辅助利润来源。

措施:

  • 1、适度控制库存水平,避免库存积压和资金占用。
  • 2、根据销售情况,适时调整B类商品的陈列位置和促销策略
  • 3、关注B类商品的市场动态,及时引入新品或淘汰滞销品。

C类商品:

  • C类商品销售额占比低,但种类数量多,管理难度较大。

措施:

  • 1、 降低库存水平,减少资金占用和库存成本。
  • 2、优化陈列布局,将C类商品放置在相对次要的位置或采用自助销售方式。
  • 3、定期进行库存清理,淘汰长期滞销的商品。

四、总结

其实针对ABC分析法,可以自己根据业务的数据,计算各个指标,然后划分权重,最终给每个商品都进行打分。然后再进行分类,最后针对不同的分类给出不同的对策。

ABC类商品肯定就保持以下的特点,记住“关键的少数”和“次要的多数”

  • A类商品:销售额占比最高,通常占总销售额的60%至70%,但商品种类数量较少,一般占总商品数量的10%左右。
  • B类商品:销售额占比适中,通常占总销售额的20%至30%,商品种类数量也适中,占总商品数量的20%左右。
  • C类商品:销售额占比最低,通常占总销售额的10%左右,但商品种类数量最多,占总商品数量的70%左右。

五、ABC分类法适用哪些场景及优缺点

1、ABC分析法适用场景

解释了这么多,大家应该都知道 ABC分析法 具体是什么了吧,那让我们来看看ABC分析法的适用场景。

ABC分析法适用场景:


  • 库存管理
    ABC最金典的优化管理;在库存管理中,ABC分类法常用于区分不同库存物品的重要性和管理优先级。A类物品通常占库存总金额的大部分(如80%)但数量较少,需要重点管理;B类物品的重要性次之,数量和金额都居中;C类物品虽然数量众多但金额占比小,可以相对宽松地管理。

  • 销售管理
    在销售领域,ABC分类法可以帮助销售人员识别最重要的客户(A类客户),这些客户通常贡献了大部分的销售收入。通过集中资源和精力服务这些客户,可以提高客户满意度和忠诚度,进而提升销售业绩。

  • 成本管理
    在成本管理中,ABC分类法可以用于识别成本构成中的主要部分和次要部分。通过优化A类成本(即占比较大的成本),企业可以实现显著的成本节约。

  • 质量管理: 在质量管理中,ABC分类法可以用于识别导致质量问题的主要因素。通过集中解决这些主要因素,可以显著提高产品质量和客户满意度。

  • 供应链管理
    在供应链管理中,ABC分类法可以帮助企业识别最重要的供应商和合作伙伴。通过与这些供应商建立紧密的合作关系,可以确保供应链的稳定性和可靠性。

  • 人力资源管理
    在人力资源管理中,ABC分类法可以用于识别关键员工和潜在的高绩效员工。通过为这些员工提供更具吸引力的薪酬和职业发展机会,可以激发他们的积极性和创造力。

  • 市场营销
    在市场营销中,ABC分类法可以用于识别最具潜力的市场和客户群体。通过针对这些市场和客户群体制定更有针对性的营销策略,可以提高市场占有率和品牌影响力。

  • 项目管理
    在项目管理中,ABC分类法可以帮助项目经理识别项目中的关键任务和活动。通过优先处理这些任务和活动,可以确保项目的按时交付和高质量完成。


总之,ABC分类法适用于需要区分事物重要性和优先级、优化资源配置和提高管理效率的各种场景。通过这种方法,企业可以更加有效地管理资源、降低成本、提高客户满意度和市场竞争力。

2、ABC分析法优缺点

ABC分析法适合于很多场景,但是ABC分析法也有优缺点,让我们来了解一下,知道优缺点,才知道适不适用你现在的业务。

优点

  • 提高效率:ABC分析法简便易行,通过区分关键和次要因素,使得管理能够集中精力抓住重点问题进行管理,从而实现用最少的人力、物力、财力获得最大的经济效益。
  • 简单易行:只要具备必备的成本资料,就可以普遍采用ABC分析法。即使成本数据不完全准确,只要能反映对象成本的相对比重,就可以通过成本排队,进行ABC分类,确定对象选择的优先顺序。
  • 成本效益分析:ABC分析法提供了现有技术的相关成本信息,可以改进管理者对新生产工艺的评价,而且可以作为评价技术发展潜在成本和收益的基础。例如,精简生产过程、减少设置次数、使厂区布局合理化以降低原材料处理费用,以及提高质量控制以减少检验费用等,都对产品成本有着较大影响。
  • 绩效评估:ABC分析法对活动和成本驱动因素的分析也为绩效评估提供了一个广泛的范围和更加合理的标准。
  • 应用领域广泛:ABC分析法不仅应用于库存管理,还广泛应用于工业、商业、物资、人口及社会学等领域,以及物资管理、质量管理、价值分析、成本管理、生产管理等多方面。

缺点

  • 可能遗漏重要项目:虽然ABC分析法能够很好地关注到成本占比高的项目,但可能会遗漏那些成本比重不大但功能重要或对用户来说至关重要的项目。例如,在库存管理中,某些C类物品可能对客户满意度有重要影响,但由于其成本较低而被忽视。
  • 静态分类:ABC分类法通常是基于历史数据进行静态分类,可能无法反映当前市场变化或需求波动。这可能导致库存策略不够灵活,无法及时应对市场变化。
    数据要求高:为了准确地进行ABC分类,企业需要收集和分析大量的历史交易数据。对于数据管理能力较弱的企业来说,这可能会是一个挑战。
  • 应用限制:ABC分析法主要关注成本因素,对于其他方面的决策,如生产计划、设施布局等,可能不完全适用。

综上所述,ABC分析法是一种具有显著优点但也有一定局限性的分析工具。在应用时,需要充分考虑其优缺点,并结合实际情况进行灵活调整和优化。

代码

import pandas as pd

# 数据包含以下列:商品名称, 销售额, 库存数量, 单位库存成本
data_path = 'data_sale.xlsx'

# 读取销售数据和库存成本数据
data = pd.read_excel(data_path)
df = pd.DataFrame(data)

# 计算总销售额
total_sales = df['销售额'].sum()

# 计算每个商品的销售额占比
df['销售额占比'] = df['销售额'] / total_sales

# 计算每个商品的库存总成本
df['库存总成本'] = df['库存数量'] * df['单位库存成本']

# 计算每个商品的库存成本占比(相对于总库存成本)
total_inventory_cost = df['库存总成本'].sum()
df['库存成本占比'] = df['库存总成本'] / total_inventory_cost

# 计算每个商品的商品数量占比(相对于总商品数量)
total_quantity = df['库存数量'].sum()
df['数量占比'] = df['库存数量'] / total_quantity

# 定义权重,用于综合考虑销售额占比、库存成本占比和商品数量占比
# 这些权重可以根据业务需求进行调整
weight_sales = 0.6  # 销售额的权重
weight_inventory_cost = 0.3  # 库存成本的权重
weight_quantity = 0.1  # 商品数量的权重

# 计算综合得分
df['综合得分'] = df['销售额占比'] * weight_sales + df['库存成本占比'] * weight_inventory_cost + df['数量占比'] * weight_quantity

df.to_excel('data3.xlsx', index=False)

# 定义ABC分类的阈值
# 这里我们使用综合得分的百分比来定义分类阈值
# 例如,A类商品占综合得分前20%,B类占接下来30%,C类占剩余50%
# 根据综合得分进行分类
df['分类'] = pd.qcut(df['综合得分'],  [0,0.5, 0.8, 1], labels=['A', 'B', 'C'])

# 可选:将分类结果保存到新的CSV文件中
output_path = 'abc_classified_data.xlsx'
df.to_excel(output_path, index=False)

以上就是完整的一套从理论到实践的 ABC分析法模型 。

如果有什么不对的地方,欢迎指正~

还想了解什么大数据知识,可以私信我或者评论区告诉我~

我会竭尽全力用大白话讲解你们难懂的知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值