当前位置: 首页 > news >正文

网站建设培训速成wordpress个人博客带会员

网站建设培训速成,wordpress个人博客带会员,app开发定制公司如,企业的网站一般做哪些维护问题背景 有表A#xff0c;其数据如下 关键信息是邮寄地址和单号。 表B#xff1a; 关键信息是运单号和重量 我们需要做的是#xff0c;对于表A中的每一条数据#xff0c;根据其单号#xff0c;在表B中查找到对应的重量。 在表A中新增一列重量#xff0c;将刚才查到的…问题背景 有表A其数据如下 关键信息是邮寄地址和单号。 表B 关键信息是运单号和重量 我们需要做的是对于表A中的每一条数据根据其单号在表B中查找到对应的重量。 在表A中新增一列重量将刚才查到的数据填在该列。 更近一步地会再提供一张价格表 我们需要根据表A的邮寄地址和刚得到的重量计算该订单的运费。 同样在表A中新增一列运费将计算得到的运费填写在该列。 准备工作 建立一个文件夹在该文件夹下再建立三个文件夹分别是origin、query和result里面分别放表A可以放多个表、表B也可以放多个表result放的是最终的结果。 其它细节 1、可以发现有些单号为空的行被折叠了为了保持原样所以我们会添加一列collapse如果订单号为空就设置collapse为1否则为空。之后再根据collapse这列折叠单号为空的行后面会介绍。 2、会存在一些在表B中找不到重量信息的订单号这些订单将被输出在命令行窗口。 3、也可以处理有多个sheet的表。 代码 import os import re import pandas as pd import cpca import math# 将所有待处理的文件都保存在这个路径下 ROOT_DIR /Users/XXX/Desktop/OrderProcessing/ # 所有结果将保存在这个路径下 SAVE_DIR /Users/XXX/Desktop/OrderProcessing/result/# 参照此格式三个数字分别表示0.5kg首重续重。 # 注意省份名称一定要规范。不过不要求Excel表格中的邮寄地址必须要规范。 COST_TABLE_ORIGIN {江苏省: [1, 3, 1],浙江省: [1, 3, 1],上海市: [1, 3, 1],安徽省: [1, 3, 1],舟山市: [1, 3, 1]}def calc_cost(province, city, weight, cost_table):根据地区和重量计算运费:param province: 省份:param city: 城市:param weight: 重量:param cost_table: 价格表:return: 价格costs Noneadditional 0if str(province) in 北京市 or str(province) in 上海市:additional 1for p, cost in cost_table.items():if str(city) in p:costs costif costs is None:for p, cost in cost_table.items():if str(province) in p:costs costif costs is None:print( 计算费用时发生错误可能是价格表中没有对应的地区)return Noneif weight 0.5:return costs[0] additionalelif weight 1:return costs[1] additionalelse:return costs[1] math.ceil(weight - 1) * costs[2] additionaldef query_weight_by_order(file_name, order, order_str运单号, weight_str重量):根据订单号查询重量:param file_name: 去哪个文件里查找:param order: 订单号:param order_str: 订单的列名:param weight_str: 重量的列名:return: 该订单的重量df pd.read_excel(iofile_name)num_rows len(df.index.values)weight Nonefor row in range(num_rows):if str(df.iloc[row][order_str]) order:weight df.iloc[row][weight_str]breakreturn weightdef add_weight(read_file_name, write_file_name, sheet_nameNone, collapse_flagTrue):添加重量信息:param read_file_name: 读取文件:param write_file_name: 写入文件:param sheet_name: 工作表名称:param collapse_flag: 是否隐藏指定行比如某项值为空则隐藏该行:return:if sheet_name is None:df pd.read_excel(ioread_file_name)writer pd.ExcelWriter(write_file_name)else:df pd.read_excel(ioread_file_name, sheet_namesheet_name)# 这样写好像有点笨if os.path.exists(write_file_name):writer pd.ExcelWriter(write_file_name, modea)else:writer pd.ExcelWriter(write_file_name, modew)num_rows len(df.index.values)if 单号 not in df.columns.values:print( 没有单号这一列请确保单号那列的列名为单号)writer.close()returnfor row in range(num_rows):order str(df.loc[row, 单号])像order这一列如果全是正常的单号读进来会是浮点数比如78649717XXX259.0如果有几行是停发读进来的就都是不带小数点的了比如78XXX17332259空值就是显示nanif order nan or order 停发: # pd.isnull(order)if order nan and collapse_flag: # 若订单号为空则标记隐藏该行df.loc[row, collapse] 1continue# 到这里的就是带小数点的订单号或者正常的不带小数点的订单号if order[-2] .: # 去除小数点order order[:-2]# df.loc[row, 单号] order# 有可能写了多个订单号比如786497173XXX978649719X80XX0786497X799ZXX4# 这种情况下就把多个订单的重量进行累加orders re.split(||\n| |,|;, order)weight 0for o in orders:if len(o) 0:continuew None这里就是根据订单的不同查询不同的表比如Y开头的查哪个表数字开头的查哪个表此处需要自定义if o[0] Y:# 根据订单号查询重量w query_weight_by_order(ROOT_DIR query/A.xlsx, o, order_str运单号码, weight_str计费重量kg)elif 0 o[0] 9:w query_weight_by_order(ROOT_DIR query/B.xlsx, o)if w is not None and (isinstance(w, float) or isinstance(w, int)):weight welse:print( 没有找到该订单的重量数据 o)if weight 0:df.loc[row, 重量] weight# 格式化地址信息address cpca.transform([df.loc[row, 邮寄地址]])# 计算运费cost calc_cost(address.loc[0, 省], address.loc[0, 市], weight, COST_TABLE_ORIGIN)if cost is None:print( 发生错误的订单号为, order)continueelse:df.loc[row, 运费] costif sheet_name is None:df.to_excel(writer, indexFalse)else:df.to_excel(writer, indexFalse, sheet_namesheet_name)writer.close() TODO: 1、修改ROOT_DIR和SAVE_DIR 2、将所有待处理的xlsx文件保存在ROOT_DIR/origin路径下查询表保存在ROOT_DIR/query路径下 2、修改查询订单重量的代码只需要简单地填写文件名关键的列名等 3、修改价格表并在调用calc_cost方法的地方指定价格表if __name__ __main__:if not os.path.exists(ROOT_DIR):print(ROOT_DIR 不存在)exit()if not os.path.exists(SAVE_DIR):print(创建目录 SAVE_DIR)os.mkdir(SAVE_DIR)else:ans input(是否删除%s下的所有文件Y/N: % SAVE_DIR)if ans Y:# 删除该目录下的所有文件for filename in os.listdir(SAVE_DIR):os.remove(SAVE_DIRfilename)print(已删除SAVE_DIR下的所有文件)print(开始处理)for filename in os.listdir(ROOT_DIRorigin/):if filename[0] . or filename[-4:] ! xlsx: # 去除隐藏文件和非xlsx文件continueprint(正在处理 filename)xlsx pd.ExcelFile(ROOT_DIR origin/ filename)sheet_names xlsx.sheet_namesxlsx.close() # 不知道是不是需要for sheet_name in sheet_names:print( 正在处理, sheet_name)add_weight(ROOT_DIR origin/ filename, SAVE_DIR filename, sheet_name)print(处理完毕) 处理结果 然后我们需要根据collapse列来折叠单号为空的行。 这个我还不知道怎么通过pandas实现现在就只能先通过Excel自带的功能处理。 比如Mac版的WPS是这么处理的 1、选中collapse列 2、按commandG。按下图设置 3、点击定位 可以发现collapse为1的行被选中了 4、点击command9。单号为空的行就被折叠了 5、然后再删除collapse这列就行了 最终结果 命令行窗口输出 是否删除/Users/XXX/Desktop/OrderProcessing/result/下的所有文件Y/N:Y 已删除SAVE_DIR下的所有文件 开始处理 正在处理table1.xlsx正在处理 Sheet1正在处理 Sheet2 正在处理A.xlsx正在处理 AA没有找到该订单的重量数据中通:786XXXX23没有找到该订单的重量数据786X5780XX37没有找到该订单的重量数据合在一起打包没有找到该订单的重量数据786493XX3783158正在处理 AB计算费用时发生错误可能是价格表中没有对应的地区发生错误的订单号为 78649XXX184656计算费用时发生错误可能是价格表中没有对应的地区发生错误的订单号为 786497XXX08769没有找到该订单的重量数据786X979XX8226没有找到该订单的重量数据5箱没有找到该订单的重量数据直发正在处理 AC正在处理 AD没有找到该订单的重量数据YT699X121XX068没有找到该订单的重量数据YT6993X9X987155没有找到该订单的重量数据786499616XXX08没有找到该订单的重量数据YT6XXX875919847没有找到该订单的重量数据786497XXX57489正在处理 AE没有单号这一列请确保单号那列的列名为单号 处理完毕Process finished with exit code 0
http://www.dnsts.com.cn/news/120140.html

相关文章:

  • php网站开发和js网站开发包含网页设计吗
  • 律师在哪个网站做推广比较好安卓app在线开发
  • 自动做PPT的网站福建省鑫通建设有限公司网站
  • 网站网址怎么写玉器哪家网站做的好
  • 广西免费网站制作从零开始网站建设下载
  • 江宁区住房和城乡建设厅网站如何用flash做网站
  • 孝感市网站建设公司人才网站建设方案
  • 怎么查看网站的友情链接怎么用dw设计网站页面
  • 婚纱摄影网站的设计思路网站的推广运营
  • app开发网站怎么知道哪家公司网站做的好
  • 个人网站备案 淘宝客icp许可证对网站的要求
  • 凡科网建站怎么样网站多数关键词
  • 效果图网站密码破解怎么免费创建一个网站
  • 网站建设佰首选金手指五怎么自己做网站表白
  • 广告位网站建设网站建没有前景
  • 网站安全防黑联盟做一个公司的网站应做哪些准备工作
  • 百度产品大全苏州seo关键词优化软件
  • 展开网站建设100个免费推广网站下载
  • dw可以做网站后台吗百度投票人气排行榜入口
  • 做计划网站个人网址怎么填写
  • 广告行业做网站哪个好最新个人注册公司流程
  • 公司网站建设 阿里网络规划设计师考试科目
  • 衡水企业网站制作报价在深圳市住房和建设局网站
  • 网站开发需求确认书中国能源建设集团有限公司官网
  • 国外做游戏评测的视频网站公司名称注册查询网
  • 做外贸网站商城网站设置首页连接分类页的视频教程
  • php网站开发试题及答案公司建立网站用于业务
  • 东莞市官网网站建设公司新手如何学代码
  • 河北网站建设哪家公司好最专业汽车网站建设
  • 做的比较好的网站有哪些军事网站模板下载