Python学习笔记:快递运费计算

一、需求

现有一个维表,包含以下字段:

国家	货物类型	重量上限2	重量下限2	运费	挂号费
'''
英国	普货类	0 	2 	61	16
英国	普货类	2 	20 	61	16
英国	内置电池	0 	2 	83	16
英国	内置电池	2 	20 	78	16
德国	普货类	0 	0.4 	63	18
德国	普货类	0.4 	2 	57	21
德国	普货类	2 	30 	57	21
德国	内置电池	0 	2 	72	21
德国	内置电池	2 	30 	72	21
法国	普货类	0 	0.4 	64	20
法国	普货类	0.4 	2 	59	23
法国	普货类	2 	30 	59	23
法国	内置电池	0 	0.4 	77	20
法国	内置电池	0.4 	2 	77	23
法国	内置电池	2 	30 	75	23
西班牙	普货类	0 	2 	59	18
西班牙	普货类	2 	30 	59	18
西班牙	内置电池	0 	2 	72	18
西班牙	内置电池	2 	30 	76	18
意大利	普货类	0 	2 	60	23
意大利	普货类	2 	30 	65	23
意大利	内置电池	0 	2 	80	23
意大利	内置电池	2 	30 	82	23
美国	普货类	0 	0 	94	18
美国	普货类	0 	0 	94	18
美国	普货类	0 	0 	94	16
美国	普货类	0 	1 	94	16
美国	普货类	1 	2 	94	9
美国	普货类	2 	30 	91	9
美国	内置电池	0 	0 	118	18
美国	内置电池	0.1 	0 	116	18
美国	内置电池	0.2 	0 	113	18
美国	内置电池	0.45 	1 	113	18
美国	内置电池	1 	2 	113	9
美国	内置电池	2 	30 	108	9
'''

要求计算:给定国家、货物类型、重量,计算应付运费、挂号费。

二、实操

直接上代码!!!

##### 快递运费匹配 #####
import pandas as pd
import os
os.chdir(r'C:\Users\111\Desktop')

df = pd.read_excel('money.xlsx')

def yunfei_count(country, thing_type, weight):
    is_or_not = (df['国家'] == country) & (df['货物类型'] == thing_type) & (df['重量上限2'] <= weight) & (df['重量下限2'] >= weight)
    return df.loc[is_or_not, '运费'].values[0], df.loc[is_or_not, '挂号费'].values[0]

a, b = yunfei_count('意大利', '内置电池', 1)

print(f'本次快递运费为:{a}\n本次快递挂号费为:{b}')
'''
本次快递运费为:80
本次快递挂号费为:23
'''
posted @   Hider1214  阅读(1129)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-01-28 Linux学习笔记:sed删除、插入数据
2019-01-28 Linux学习笔记:常用命令grep、iconv、cp、mv、rm
点击右上角即可分享
微信分享提示