我试图调用一个函数,但没有成功 目标是运行职责分离检查规则
per=pd.read_excel('Permissionwp.xlsx',sheet_name='Sheet1')
def take_first(elem):
return elem[0]
def sod(permissiona,permissionb):
rsod=[]
ls1=[]
ls2=[]
for i in range(len(per)):
if per.iloc[i,5]==permissiona:
ls1.append((per.iloc[i,1],per.iloc[i,4]))
else:
pass
for i in range(len(per)):
if per.iloc[i,5]==permissionb:
ls2.append((per.iloc[i,1],per.iloc[i,4]))
else:
pass
for user in ls1:
if user in ls2:
rsod.append(user)
rsod=list(set(rsod))
for i in sorted(rsod,key=take_first):
print(i)
问题如下-我试图通过运行规则文件来调用sod函数 使用超氧化物歧化酶不会给我带来结果,而是“没有”
l=()
count=0
risk=pd.read_excel('risk.xlsx',sheet_name='Sheet1')
for num in range(len(risk)):
sod(risk.iloc[num,4],risk.iloc[num,5])
问题就在这里
至于问题:您是否确定rsod函数中的最后一个条件以及rsod列表不是空的? 另外,带来“无”是否意味着打印输出为“无”
A关于守则的备注: 似乎每个对象类型都是DataFrame,所以使用所有这些for循环可能不是很有效。相反,您应该直接在数据帧上应用矢量化命令,将每个for循环变成一行
您可以在此处了解循环数据帧的不同方法: https://towardsdatascience.com/how-to-make-your-pandas-loop-71-803-times-faster-805030df4f06
相关问题 更多 >
编程相关推荐