時間:2023-03-15 23:18:01 | 來源:電子商務(wù)
時間:2023-03-15 23:18:01 來源:電子商務(wù)
今天在粉絲交流群里有群友詢問了一個已知每個貨品的庫存,求組合商品(就是多個貨品捆綁組合成一個組合商品)的庫存量。邏輯上講,應(yīng)該是組合商品里貨品庫存最低的那個貨品存量決定整個組合商品的庫存量(水桶原理),那么如何實(shí)現(xiàn)呢?excel
里先通過vlookup
匹配每個組成商品對應(yīng)庫存量,然后再按照組合商品進(jìn)行透視分組計算庫存量最小值即可?;谝陨纤悸?,大家可以自己試試用excel
透視表進(jìn)行處理。不過,本文我們也會提供兩種方式才進(jìn)行處理,分別是python
和excel數(shù)據(jù)合并計算
。pandas
的merge
和transform
函數(shù)方法import pandas as pd# 讀取數(shù)據(jù)df = pd.read_excel(r'案例數(shù)據(jù).xlsx', sheet_name='組合商品')df1 = pd.read_excel(r'案例數(shù)據(jù).xlsx', sheet_name='總庫存')# 由于組合商品中存在空行,所以這里刪除,并采用向上填充的方式填充組合商品字段的空值temp = df.dropna(how='all').ffill()temp.head()
在組合商品中存在部分組合商品里的其實(shí)是同一種商品的N件組合,這種情況下算庫存是需要除以N
的,這也是本案例的一個可能踩到的坑。temp['貨品編號'] = temp['組成商品'].str.split('*',expand=True)[0]# 注意貨品數(shù)量字段類型轉(zhuǎn)換為 數(shù)值類型temp['貨品數(shù)量'] = temp['組成商品'].str.split('*',expand=True)[1].fillna(1).astype('int')temp.head()
接著,我們將每個貨品對應(yīng)庫存量匹配上來,用到merge
函數(shù)。# 貨品庫存預(yù)覽df1.sample(5)
temp = temp.merge(df1,how='left')# 由于每個組合商品是多個商品按照一定數(shù)量組合的,所以實(shí)際庫存量應(yīng)該除以每個貨品在組合里的數(shù)量temp['庫存量'] = temp['庫存量']//temp['貨品數(shù)量']temp.head()
到這里,我們就好處理組合商品的庫存了(就是其對應(yīng)組成商品的庫存量最小值)。大家會怎么來計算呢?首先想到的可能是分組或透視的形式,當(dāng)然這里用到的是transform
,大家可以用別的試試哈。temp['庫存'] = temp.groupby('組合商品')['庫存量'].transform('min')temp.head()
=IF(B3="",A2,B3)
接著對組合商品表中組成商品分列(按照)*vlookup
獲取每個組成商品的的庫存量=ROUNDDOWN(IFERROR(E2/D2,E2),0)
最后,菜單欄數(shù)據(jù)->合并計算來求值excel
的操作技巧,這里用到的是數(shù)據(jù)->合并計算?。?br>作者:可以叫我才哥
一道簡單的電商數(shù)據(jù)分析筆試題:求組合商品的庫存量
關(guān)鍵詞:分析,數(shù)據(jù)
客戶&案例
營銷資訊
關(guān)于我們
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。