行政区划代码

来源:中华人民共和国民政部 - 行政区划代码

处理:

import pandas as pd 

aa = pd.read_clipboard()
aa.head()
aa.columns = ['code', 'name']


aa['id'] = aa['code'].map(lambda x:1 if re.match('[1-9][0-9]0{4}', x) else 0)
aa['id1'] = aa['code'].map(lambda x:1 if re.match('[1-9][0-9]([0-9][1-9]|[1-9]0)0{2}', x) else 0)


res = []
for _,i in aa.iterrows():
    if i['id']==1:
        x = i[0]
        y = None
        res.append([i[0],i[1],'1',np.nan])
    elif i['id1']==1:
        y = i[0]
        res.append([i[0],i[1],'2',x])
    else:
        res.append([i[0],i[1],'3' if y else '2',y if y else x])

bb = pd.DataFrame(res,columns=['code','name','id','code0'])
path = r'C:\Users\Administrator\Desktop\bb.xlsx'
bb.to_excel(path, encoding='utf-8_sig')

index = bb.apply(lambda x: str(x[0])[:4]!=str(x[3])[:4] and x[2]=='3', axis=1)
bb['bz'] = np.nan
bb.loc[index, 'bz'] = '省直辖'
bb.loc[index, 'id'] = '2'
bb.loc[index, 'code0'] = bb.loc[index, 'code'].map(lambda x:x[:2]+'0000').values
View Code

相关文章: