背景
为了将航线分类,把国内机场用0标识,国际机场用1标识,地区机场(港澳台)用2标识,具体的航线分类情况见下图:
在已知航班的出发地和目的地属性时,如何利用PYTHON实现对航线的分类标识(即最终结果显示为E、F列)?
意思就是在EXCEL表中由已知前四列扩展后两列。
代码实现
import pandas as pd
#导入cs文件原始数据
dt=pd.read_excel('cs.xlsx')
#定义两个新数组hxbz,hxlb,根据相关逻辑去扩充这两个数组。举个例子,经过排序后,出发地标识和目的地标识为[1,2],对应的航线标识为4.
hxbz=[]
hxlb=[]
for i in dt.index:
if [dt.ix[i,1],dt.ix[i,3]]==[0,0]:hxbz.append(0),hxlb.append(u'国内-国内')
elif [dt.ix[i,1],dt.ix[i,3]]==[1,1]:hxbz.append(5),hxlb.append(u'国际-国际')
elif [dt.ix[i,1],dt.ix[i,3]]==[2,2]:hxbz.append(3),hxlb.append(u'地区-地区')
elif sorted([dt.ix[i,1],dt.ix[i,3]])==[0,1]:hxbz.append(1),hxlb.append(u'国内-国际')
elif sorted([dt.ix[i,1],dt.ix[i,3]])==[0,2]:hxbz.append(2),hxlb.append(u'国内-地区')
elif sorted([dt.ix[i,1],dt.ix[i,3]])==[1,2]:hxbz.append(4),hxlb.append(u'地区-国际')
else:hxbz.append('NA')
#将这两列数组扩展到dt数据框的后两列,并更新列名
dt[u'航线类别']=hxlb
dt[u'航线标识']=hxbz
#写入cs文件并覆盖原始文件
dt.to_excel('cs.xlsx')