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
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM