匹配库中数据的效率完全在于库的大小,在程序中fou循环匹配时最好设置break(允许的情况下),且库的数据也要按出现频率由上到下的排列。这里要注意的是这个例子的break必须设置,否则符合要求的项会被覆盖掉。
我有一个电话库,需要将某个表中与电话库里相同的表数据标记。我用的是pandas里的Dataframe格式数据,我要将库里存在的数据标为1,没有的标为0。在apply函数应用了for循环对库中所有元素比较。这里要十分注意一旦库里存在则标为1,并停止循环,否则被标记为1的数会在未停下的for循环里又被覆盖为0。
def deal(x):
for p in phones:
if x == p:
m = 1
break #for循环是一直循环下去的若有变量赋值则结束此层循环
else:
m = 0
return m
data1['是否有故障记录1'] = data1['联系电话'].apply(lambda x:deal(x)) #另起了一个字段进行了标记