标签:前置 center 映射 wms sp 名称 分布式 data stock
import time
import pandas as pd
# 聚焦中心仓有货 配属前置仓无货
data = pd.read_excel('G:/中心仓/center_stock.xlsx')
print(time.localtime())
K = data[data['仓库名称'].notna() & data['仓库名称'].str.contains('中心仓') & data['库存数量'].notna() & data['库存数量'] > 0]
owner = ['信天翁-京东', '白鸥-京东', '信天翁-自采-宠物']
leimu = ['宠物用品', '运动户外', '母婴用品', '粮油调味', '营养保健', '洗护用品', '日用百货', '家居清洁']
name = ['破损', '锐澳', '滴露']
center_stock = K[K['货主'].str.contains('|'.join(owner)) & K['一级分类名称'].str.contains('|'.join(leimu)) & ~(
K['标品名称'].str.contains('|'.join(name)))]
center_stock.reset_index(drop=True, inplace=True)
# 1.中心仓库存存在一品多货主,先取出center_sp
center = center_stock.drop_duplicates(subset=['仓库名称', '标品名称', 'sp码'], inplace=False, ignore_index=True)
center_sp = center.drop(['城市', '长宽高', '毛重', '毛重单位', '库存成本', '货主',
'条码', '分类名称', '一级分类名称', 'wms在途数量', 'wms验收中数量', 'wms发货预占库存'], axis=1, inplace=False)
center_sp = center_sp.groupby(['仓库名称', '标品名称', 'sp码']).sum()
center_sp.reset_index(inplace=True) # 重设 Multiindex的 index值
# 2.利用中心仓与前置仓之间映射关系,取到前置仓的库存。
relation = pd.read_excel('G:/中心仓/relation.xlsx')
# 3.利用 1、2得到中心仓_sp 与映射的前置仓之间的relationship 以及 获取得到中心仓库存
relation_stock = pd.merge(relation, center_sp, left_on='云仓名称', right_on='仓库名称', how='inner')
# 4.获取前置仓的库存
a = data['仓库名称'].map(lambda x: pd.notna(x)) # 这里暂时不清楚 为何 通过data[布尔索引]仍然可以得到负数,可以通过库存数量>0的情况
b = data['库存数量'].map(lambda x: x >=0|pd.isna(x))
k = data[a & b] # 去掉无效库存后的库存表
k[['wms在途数量','wms验收中数量']].fillna(0,inplace=False)
k = k.assign(zaitu_stock=k['库存数量']+k['wms在途数量']+k['wms验收中数量'])
stock = k.loc[:, ['仓库名称', 'sp码', 'zaitu_stock']] # 未包含 'wms在途数量', 'wms验收中数量'
k = stock.groupby(['仓库名称', 'sp码']).sum()
k.reset_index(inplace=True)
stock = pd.merge(relation_stock, k, left_on=['前置仓名称', 'sp码'], right_on=['仓库名称', 'sp码'], how='inner',
suffixes=('_中心仓', '_前置仓'))
stock.to_excel('G:/中心仓/中心仓库存分布_1_13.xlsx')
标签:前置,center,映射,wms,sp,名称,分布式,data,stock 来源: https://www.cnblogs.com/ivan09/p/15979677.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。