import pandas as pd import mpu from uszipcode import SearchEngine from bisect import bisect_right search = SearchEngine() path = r"C:/Users/Lenovo/Desktop/7.12/仓库邮编分区表列表.xlsx" data = pd.read_excel(path) def zipdistance(s,e): zip1 = search.by_zipcode(str(s)) lat1 =zip1.lat long1 =zip1.lng zip2 =search.by_zipcode(str(e)) lat2 =zip2.lat long2 =zip2.lng dis = mpu.haversine_distance((lat1,long1),(lat2,long2)) return dis def price(mile): mile_limits = [0, 150, 300, 600, 1000, 1400, 1800, float('inf')] prices = [2, 3, 4, 5, 6, 7, 8] idx = bisect_right(mile_limits, mile) return prices[idx-1] for k in range(data.shape[0]): try: dis = zipdistance(data.loc[k, '仓库邮编'],data.loc[k, '客户邮编']) p = price(dis/1.609344*1.17) # data.loc[k, '距离公里'] = dis data.loc[k, '距离'] = dis/1.609344*1.17 data.loc[k, '新zone'] = p except: print(data.loc[k, '仓库邮编']) data.to_excel(r'C:/Users/Lenovo/Desktop/7.12/仓库邮编分区表列表111.xlsx') #%%
fighting
浙公网安备 33010602011771号