教你使用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抢过年的火车票附源码
Dec 07 Python
深入理解Python爬虫代理池服务
Feb 28 Python
Python3中的json模块使用详解
May 05 Python
Django框架模板介绍
Jan 15 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
Django继承自带user表并重写的例子
Nov 18 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
python 装饰器的使用示例
Oct 10 Python
Python序列化模块JSON与Pickle
Jun 05 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 COOKIE设置为浏览器进程
2009/06/21 PHP
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
dojo 之基础篇
2007/03/24 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
Python中断多重循环的思路总结
2019/10/04 Python
python实现人机猜拳小游戏
2020/02/03 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
青蓝工程实施方案
2014/03/27 职场文书
找工作求职信
2014/07/07 职场文书
中学生逃课检讨书
2015/02/17 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android