4.pandas 数据筛选 与 逻辑赋值

2017-12-17  本文已影响0人  B0ZZ

0 实验数据

仓库商品信息全表(表名=sku_all)

仓库 仓库ID SKU 状态 批次 效期 批号 库存
备货仓 7 102001 1 YQ1HMC 43693 20190816 11
... ... ... ... ... ... ... ...
华东仓(原零售仓) 5 102116 1 YQ2FMA 43622 20190606 7
内部测试仓 0
import pandas as pd
sku_all = pd.DataFrame([['备货仓','7','102001','1','YQ1HMC','43693','20190816',11],['华东仓(原零售仓)','5','102001','1','YQ1HMC','43693','20190816',5],['备货仓','7','102001','3','YQ1HMC','43693','20190816',1],['华东仓(原零售仓)','5','102002','1','YQ1HMB','43692','20190815',6],['华东仓(原零售仓)','5','102005','1','YQ1HMB','43693','20190816',10],['备货仓','7','102101','3','CSQA002','43130','20180130',1],['华东仓(原零售仓)','5','102104','1','CSRF001','43651','20190705',6],['备货仓','7','102104','3','dfhg','43651','20190705',1],['华东仓(原零售仓)','5','102105','1','CSRE001','43609','20190524',2],['备货仓','7','102105','3','0411A','43609','20190524',1],['华东仓(原零售仓)','5','102111','1','CSRF001','43651','20190705',2],['华东仓(原零售仓)','5','102111','1','fh22','43651','20190705',1],['备货仓','7','102111','3','dg0h52','43587','20190502',1],['备货仓','7','102113','3','CSRF002','43651','20190705',1],['华东仓(原零售仓)','5','102114','1','A','43634','20190618',1],['备货仓','7','102114','3','fh02','43634','20190618',1],['华东仓(原零售仓)','5','102115','1','','43650','20190704',1],['备货仓','7','102116','1','YQ2FMA','43622','20190606',6],['华东仓(原零售仓)','5','102116','1','YQ2FMA','43622','20190606',7],['内部测试仓','0','','','','','',]],columns=['仓库','仓库编号','SKU','状态','批次','有效日期','批号','库存'])

1 数据筛选(等价于SQL中的where语句)

# 仅选取备货仓中,涉及SKU在'102001'和'102104'中,且要求单行库存数量高于10的数据
sku_all[(sku_all['仓库']=='备货仓') & (sku_all['SKU'].isin(['102001','102104'])) & (sku_all['库存']>=10)]

# SKU “不” 在'102001'和'102104'中,且要求单行库存数量高于10的数据
sku_all[-(sku_all['SKU'].isin(['102001','102104'])) & (sku_all['库存']>=10)]

# 仅选取仓库名称中不含“备货”两字,且要求单行库存数量高于10的数据
sku_all[-(sku_all['仓库'].str.contains('备货')) & (sku_all['库存']>=10)]

数据筛选
上一篇 下一篇

猜你喜欢

热点阅读