现有一个维表,包含以下字段:
国家 货物类型 重量上限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 '''