利用pandas处理订单数据并匹配组别和渠道

需求:
每天从公司的CRM系统导出的订单数据并不能直接拿来使用,并且缺少下单人员所属的组别和该客户的渠道来源,原始办法是利用excel根据订单编号利用函数关联多个表格返回需要的订单数据,每天这样粘贴复制显得繁琐,数据容易出错或者漏单,下面用pandas进行操作。

源数据(订单主表):
----CRM系统导出的订单数据----
每一天的数据在150单左右
在这里插入图片描述
处理后的数据形式:
在这里插入图片描述
至于为什么要处理成这样的数据:

  1. 添加部门、组别、渠道的信息’
  2. 公司数据库的table结构也是这样的结构,方便数据入库
  3. 制作公司报表

整体思路:
匹配部门和组别需要另外一个表格数据《人员信息.xlsx》
匹配渠道 需要根据此单的客服微信和加粉时间去匹配渠道

----------首先加载所需的数据源-------对相应的列就行格式转换和数据清洗-------利用字典映射匹配组别和部门—利用客服微信和加粉时间合成唯一编码,再构造字典去匹配渠道名称-------

下面是代码:

dingdan = pd.read_excel(r"C:\Users\Administrator\Desktop\订单主表.xls")
dingdan = dingdan.drop(["发货时间", "订单备注", "付款方式", "订金方式", "客户编号", "发货单号", "签收时间", "送货方式", "平分客服"], axis=1)
dingdan["加粉时间"] = pd.to_datetime(dingdan["加粉时间"])
dingdan["订单编号"] = [str(i) for i in dingdan["订单编号"]]
dingdan["客服微信"]  = [str(i)for i in dingdan["客服微信"]]
dingdan["客服微信"] = dingdan["客服微信"].apply(lambda x: x.lower())
print("昨日订单总数:" + str(len(dingdan)))

首先对这几列格式转化,客服微信是由 ”字母+数字“组成,有时业务人员录入系统的客服微信字母没有区分大小写,这里统一给它转换成小写。
在这里插入图片描述
加载人员信息表格,里面包含姓名,部门,组别信息。
构造department字典,key是姓名,values是部门,由于姓名是唯一,所以key不会出现重复的情况。
构造groups字典,key是姓名,values是组别
然后利用map()方法 得到组别和部门
在用sort_values 分组
有时候人员信息表来不及更新,或者出现主管下的测试单,这是组别是空的,所以是空的时候,输出文件检查。

在这里插入图片描述
然后单独把微信部的订单拿出来匹配渠道:
根据订单的加粉时间和客服微信 拼接在一起 生成新的一列 wx[‘编号’] = new_list
再根据渠道核对数据源 这个文件 构造一个venussz字典,key是加粉时间和客服微信拼接一起的str,values是渠道名称。然后根据wx[‘编号’]这一列去映射生成渠道

在这里插入图片描述
最后统计处理后各部门的订单数 是否等于 总的订单数,防止漏单。最后输出文件。

发布了16 篇原创文章 · 获赞 5 · 访问量 7038
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览