一、需求
現有一個維表,包含以下字段:
國家 貨物類型 重量上限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
'''
