python按优先顺序循环对比多个值
如下代码的作用是先循环listRegions对比x.范围,如果符合条件直接返回,否则,同理先后对比x.地址、x.商户。功能虽然是实现了?但感觉这个代码很傻,各位有什么优化建议?谢谢。
import numpy as np
import pandas as pd
listRegions = ['茂南', '高州', '信宜', '化州']
def getRegion(x):
for i in range(len(listRegions)):
if x.范围.find(listRegions) >= 0:
return listRegions
for i in range(len(listRegions)):
if x.地址.find(listRegions) >= 0:
return listRegions
for i in range(len(listRegions)):
if x.商户.find(listRegions) >= 0:
return listRegions if判断写在同一个循环不久行了 对啊,为啥不写在一个for循环里,这每一个循环就只做一件事情,可能效率会低一些吧 用 for 循环可以不?楼主可以尝试下 已解决
# 声明变量
listRegions = ['茂南', '电白', '高州', '化州', '信宜']
# 获得区域函数
def getRegion(x):
for strRegion in range(len(listRegions)):
if str(x.装维组用户班).find(listRegions) >= 0:
return listRegions
for strRegion in range(len(listRegions)):
if str(x.五级地址名称).find(listRegions) >= 0:
return listRegions
for strRegion in range(len(listRegions)):
if str(x.二级地址名称).find(listRegions) >= 0:
return listRegions
...
# 调用
sheetOnTheWay['区域'] = sheetOnTheWay.apply(lambda x: getRegion(x), axis=1)
...
页:
[1]