Я хочу выполнить сложную операцию более чем 3 раза. Во-первых, я отфильтровал данные, в которых статус пользователя включен, а затем я проведу l oop через 2 других примера, чтобы найти данные, соответствующие разрешенным пользователям. Я начал зацикливаться один за другим и сохранял список кортежей. Я попытался использовать Normal Looping и itertuples (), но все еще слишком медленно. Есть ли более быстрый способ выполнить эту операцию -
from pandas import ExcelWriter
from pandas import ExcelFile
df = pd.read_excel('Enable-DisableUsersList.xlsx')
df2 = df[df.Status == '*ENABLED']
df1 = pd.read_excel('Excel1.xlsx')
df3 = pd.read_excel('Excel.xls2')
final_list = []
for ind1 in df1.index:
for ind2 in df2.index:
if(df1['USER PROFILE'][ind1] == df2['User ID'][ind2]):
for ind3 in df3.index:
if(df3['user profile'][ind3] == df2['User ID'][ind2]):
userprofile = df1['USER PROFILE'][ind1]
nameprofile = df1['NAME PROFILE'][ind1]
mainmenuno = df3['sysmenu option'][ind3]
mainmenu = df1['SUBMENU'][ind1]
mainmenudesc = df1['NAME SUBMENU'][ind1]
submenu = df1['OPTION'][ind1]
submenudesc = df1['NAME OF OPTION'][ind1]
status = df2['Status'][ind2]
list = (userprofile, nameprofile, mainmenuno, mainmenu,
mainmenudesc, submenu, submenudesc, status)
final_list.append(list)
# print(final_list)
print(final_list)````
I have used df.iterrows() instead of df.index also but still thats slow.