时间:2023-03-15 23:18:01 | 来源:电子商务
时间:2023-03-15 23:18:01 来源:电子商务
今天在粉丝交流群里有群友询问了一个已知每个货品的库存,求组合商品(就是多个货品捆绑组合成一个组合商品)的库存量。逻辑上讲,应该是组合商品里货品库存最低的那个货品存量决定整个组合商品的库存量(水桶原理),那么如何实现呢?excel
里先通过vlookup
匹配每个组成商品对应库存量,然后再按照组合商品进行透视分组计算库存量最小值即可。基于以上思路,大家可以自己试试用excel
透视表进行处理。不过,本文我们也会提供两种方式才进行处理,分别是python
和excel数据合并计算
。pandas
的merge
和transform
函数方法import pandas as pd# 读取数据df = pd.read_excel(r'案例数据.xlsx', sheet_name='组合商品')df1 = pd.read_excel(r'案例数据.xlsx', sheet_name='总库存')# 由于组合商品中存在空行,所以这里删除,并采用向上填充的方式填充组合商品字段的空值temp = df.dropna(how='all').ffill()temp.head()
在组合商品中存在部分组合商品里的其实是同一种商品的N件组合,这种情况下算库存是需要除以N
的,这也是本案例的一个可能踩到的坑。temp['货品编号'] = temp['组成商品'].str.split('*',expand=True)[0]# 注意货品数量字段类型转换为 数值类型temp['货品数量'] = temp['组成商品'].str.split('*',expand=True)[1].fillna(1).astype('int')temp.head()
接着,我们将每个货品对应库存量匹配上来,用到merge
函数。# 货品库存预览df1.sample(5)
temp = temp.merge(df1,how='left')# 由于每个组合商品是多个商品按照一定数量组合的,所以实际库存量应该除以每个货品在组合里的数量temp['库存量'] = temp['库存量']//temp['货品数量']temp.head()
到这里,我们就好处理组合商品的库存了(就是其对应组成商品的库存量最小值)。大家会怎么来计算呢?首先想到的可能是分组或透视的形式,当然这里用到的是transform
,大家可以用别的试试哈。temp['库存'] = temp.groupby('组合商品')['库存量'].transform('min')temp.head()
=IF(B3="",A2,B3)
接着对组合商品表中组成商品分列(按照)*vlookup
获取每个组成商品的的库存量=ROUNDDOWN(IFERROR(E2/D2,E2),0)
最后,菜单栏数据->合并计算来求值excel
的操作技巧,这里用到的是数据->合并计算!!作者:可以叫我才哥
一道简单的电商数据分析笔试题:求组合商品的库存量
关键词:分析,数据