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
'''
上一篇:C语言—万年历打印(详细易懂)


下一篇:CSDN:《新程序员003》正式上市,华为、阿里等 30+ 公司的云原生及数字化实战经验