教你使用Pandas直接核算Excel中快递费用


Posted in Python onMay 12, 2021

一、确定核算规则

教你使用Pandas直接核算Excel中快递费用

二、根据核算规则编写代码,生成核算列

# -*- coding:utf-8 -*- 
import pandas as pd 
from math import ceil
import os

def account(adress,weight):
    
    if adress == "湖南":
        if weight <= 3:
            totel = 2.5
        elif  (weight >= 3) and (weight<=5):
            totel = 3.5 + ceil((weight-3))*1
        else:
            totel = ceil(weight)*1
        return totel
            
    elif adress in ["河北","天津","山西","浙江","江苏","安徽","福建","山东","江西","广东","广西","河南","湖北","陕西","四川","重庆","云南","贵州"]:
        if weight <= 3:
            totel = 2.5
        elif  (weight >= 3) and (weight<=5):
            totel = 3.5 + ceil((weight-3))*1
        else:
            totel = ceil(weight)*2 
        return totel
    
    elif adress in ["深圳","北京","上海"]:
        if weight <= 3:
            totel = 3.3
        elif  (weight >= 3) and (weight<=5):
            totel = 3.5 + ceil((weight-3))*1.5
        else:
            totel = ceil(weight)*2
        return totel
            
    elif adress in ["海南","辽宁","黑龙江","吉林"]:
        if weight <= 3:
            totel = 2.5
        elif  (weight >= 3) and (weight<=5):
            totel = 3.5 + ceil((weight-3))*2.5
        else:
            totel = ceil(weight)*3
        return totel
    elif adress in ["内蒙古","甘肃","宁夏","青海"]:
        if  weight <= 1:
            totel = 9
        else:
            totel = 9 + ceil(weight-1)*6 
        return totel
    elif adress == "新疆":
        if  weight <= 1:
            totel = 15
        else:
            totel = 15 + ceil(weight-1)*12 
        return totel
    elif adress == "西藏":
        if  weight <= 1:
            totel = 16
        else:
            totel = 15 + ceil(weight-1)*18 
        return totel    
    else:
        print("你输入的省份不合法!!!")
    
file_path = input("请输入文件路径:")   
sheet_name = input("请输入工作簿名称:")
pf = pd.read_excel(file_path,sheet_name=sheet_name)
#获取省份一列
pro = pf["省份"].values.tolist()
#获取重量一列
wt = pf["重量"].values.tolist()
#核算列
totel = []
for p,w in zip(pro,wt):
    print(p,w)
    totel.append(account(p,w))

pf["最新核算结果"] = totel
file_name = os.path.basename(file_path)
pf.to_excel(os.path.join(os.path.dirname(file_path),os.path.basename(file_path).split(".")[0]+sheet_name+"最新核算结果"+".xlsx"))

三、输入账单,进行核算。

教你使用Pandas直接核算Excel中快递费用

在脚本文件目录中执行pyinstaller -F hesuan.py 进行打包exe文件,如果为安装pyinstaller,使用pip install pyinstaller 安装。点击运行打包后的exe文件,输入文件的路径名和sheet名,就可以进行自动核算,脚本运行完成后会自动保存一个新的Excel文件。

教你使用Pandas直接核算Excel中快递费用教你使用Pandas直接核算Excel中快递费用

教你使用Pandas直接核算Excel中快递费用

到此这篇关于教你使用Pandas直接核算Excel中快递费用的文章就介绍到这了,更多相关Pandas核算Excel中快递费用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现简单ftp客户端的方法
Jun 28 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
Python异常处理操作实例详解
Aug 28 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
python opencv通过4坐标剪裁图片
Jun 05 Python
python 标准库原理与用法详解之os.path篇
Oct 24 Python
用python开发一款操作MySQL的小工具
May 12 #Python
浅谈Python类的单继承相关知识
May 12 #Python
PyCharm 安装与使用配置教程(windows,mac通用)
在python中实现导入一个需要传参的模块
May 12 #Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
PyTorch 如何设置随机数种子使结果可复现
May 12 #Python
Python Parser的用法
May 12 #Python
You might like
PHP防止跨域提交表单
2013/11/01 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python2.7实现FTP文件下载功能
2018/04/15 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
六行python代码的爱心曲线详解
2019/05/17 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
致铅球运动员广播稿精选
2014/01/12 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
公司授权委托书范本
2014/04/03 职场文书
医学检验专业自荐信
2014/09/18 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang