一、邮政编码规则
中国的邮政编码实行“四级六码”制,即邮政编码由6位数字组成。具体来说,这6位数字分别代表以下四个层级:
- 前两位数字代表省(自治区、直辖市);
- 第三位数字代表邮区,即邮政内部的网络组织单位,近似于行政上的“地级市”;
- 第四位数字代表县(市)邮政局;
- 最后两位数字代表投递局(乡镇支局所或城区的分支机构)。
二,代码
首先我们得有个数据,这个数据长这样:
客户是有一串邮政编码,但是,一方面邮政编码都是具体到乡镇的,例如013255什么的,那么就没办法跟县级的邮政编码直接匹配。另一方面我们的邮政编码数据具体到县级,但是我们只想要市级的数据,因此得写个代码解决这个问题,解决方法如下:
还可以的,解读一下:
下面是对代码的逐行解读:
def get_quxian(ca):
定义了一个名为get_quxian
的函数,它接受一个参数ca
,这个参数预期是一个邮政编码。
try:
开始一个try
代码块,用于捕获执行过程中可能出现的异常。
for k,v in dict1:
遍历dict1
字典中的所有键值对。这里的k
是键(城市名),v
是值(邮政编码)。
if v >= int(ca):
检查当前邮政编码v
是否大于等于传入的参数ca
(将ca
转换为整数)。
return k
如果条件满足,返回对应的城市名k
。
except:
如果在try
代码块中发生异常,执行这里的代码。
return '无邮政编码'
返回一个字符串'无邮政编码'
,表示没有找到匹配的邮政编码。
def get_city(ca):
定义了一个名为get_city
的函数,它接受一个参数ca
,这个参数预期是一个邮政编码。
return get_quxian(str(ca)[0:3]+'000')
调用get_quxian
函数,并传入一个新构造的邮政编码字符串。这个字符串由ca
的前三位加上三个 '0' 组成,这样做可能是为了匹配一个特定的邮政编码格式。
import pandas as pd
导入pandas
库,并给它起了一个别名pd
。
df = pd.read_excel(r"C:\Users\Administrator\Desktop\赚钱\程序员\专利数据处理\各地区邮政编码.xlsx")
使用pandas
读取一个 Excel 文件,并将数据存储在变量df
中。
dict1 = list(zip(df['城市'],df['邮政编码']))
将df
数据框中的 '城市' 列和 '邮政编码' 列组合成一个列表的元组,然后转换为一个列表。
dict1
最后,打印出dict1
的值,这个值是一个包含元组的列表,每个元组包含一个城市名和对应的邮政编码。