利用Python构建补货任务一览表——心得

这里的补货指:从仓储区补充商品到拣选区

首先,连接数据库,根据不同的数据库类型,我们需要下载相关的驱动并设定路径,这点可以查看驱动官网进行设置,这里我用Oracle进行举例:

import cx_Oracle#导入连接模块

def connection_to_Db(username,password,url):#定义连接函数,需要3个参数:用户名,密码和数据库服务器地址
    try:
        myconn = cx_Oracle.connect(username,password,url)
        print('Connecting to  DB Successfully')
        return myconn
    except BaseException:
        print(BaseException)
        return None

然后,编写相对应的'Sql脚本'以及'列名列表'(原因在后面),比如:

part_sql="select a,b,c from db"#这里用双引号,因为Sql脚本中可能会含有单引号,用双引号与单引号进行区分

part_columns_name=['商品代码','商品数量','当前库位']

我们写好相应的Sql脚本及其对应列名列表之后,就可以编写提取数据的函数了:

import pandas as pd

def get_Info(myconn,part_sql,part_columns_name):#共3个参数,'连接对象','Sql脚本'以及'列名列表'
    mycursor = myconn.cursor()#获取游标
    mycursor.execute(part_sql)#执行Sql
    info = mycursor.fetchall()#获取执行Sql后的所有返回信息
    info = pd.DataFrame(info,columns=part_columns_name)#将信息转化为Pandas的DataFrame格式
    mycursor.close()#关闭游标
    return info#返回数据

上面我引用了Pandas模块,这是非常优秀的数据处理模块,建议读者去看《利用Pandas进行数据分析》一书,是Pandas模块的作者写的

当我们获取了我们需要的信息比如:商品信息、库位信息、订单信息等之后,我们需要对这些信息做一些修改、标记等处理,这里我介绍一些我常用的函数和方法:

字符串切片:df['商品前缀']=df['商品代码'].str.slice(0,1)#将第一个数字或字母提取为一列,效果等于Excel的LEFT,RIGHT函数

映射:df['商品类型']=df['商品前缀'].map({p:'食品类',s:'服饰类',c:'包包类'})#将特殊意义的数字、符号、字符转化为描述,效果等于Excel的???此处遗忘了

分列:df['商品生产日期']=df['商品代码'].str.split('_')[2]#用下横杠分列,取第3个对象,效果等同于Excel中的分列操作,但是更加灵活

apply函数:def good_or_bad(x):if x >100: return 'GOOD' else: return 'BAD'

df['商品销量好不好']=df.apply(lambda dfx:good_or_bad(dfx['商品销量']),axis=1)#可以将复杂的函数应用于每列中的每一行数据

先写到这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值