<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Notebook Import
Step1:  Notebook Execute
Step2:  plot_graph(Cotistas , "Pretos Pardos e Indígenas")
Read CSV
Step3:  IMPORT ALL CANDIDATES CSV
Step4:  Get CPFs
cpfs = list()
for i in allCandidates
Step5:  DELETAR
GERADOR DE PONTUAÇÃO
Step6:  FILTRO DE POLO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Step7:  SORT BY SCORE
Step8:  separacao = list()
for i in allCandidates
Step9:  CHECK LISTS SPLIT
Step10:  Divisão das cotas
a)  Candidatos com renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo, que tenham cursado integralmente o ensino médio em escolas públicas.
b) Candidatos com deficiência que tenha renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo, que tenham cursado integralmente o ensino médio em escolas públicas.
c) Candidatos autodeclarados pretos, pardos ou indígenas, com renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo e que tenham cursado integralmente o ensino médio em escola pública.
d) Candidatos com deficiência autodeclarados pretos, pardos ou indígenas, com renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo e que tenham cursado integralmente o ensino médio em escola pública.
e) Candidatos que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
f) Candidatos com deficiência que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
g) Candidatos autodeclarados pretos, pardos ou indígenas que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
h) Candidatos com deficiência autodeclarados pretos, pardos ou indígenas que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
Step11:  NUMERO DE COTISTAS
Step12:  CHECK SPLIT COTAS
Step13:  LIMPAR APROVADOS DA LISTA GERAL
Step14:  Definição dos surdos aprovados
Step15:  Criação dos aprovados finais
Step16:  Exclui surdos aprovados da lista geral
Step17:  !!!!!!!DEFINIÇÃO DO NUMERO DE VAGAS POR COTA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Step18:  Selecionador de vagas para surdos
Step19:  SELECIONADOR DE VAGAS DOS OUVINTES
Step20:  ORDENA POR NOTA
Step21:  Divisão da Lista
Step22:  LISTA PARA MSTECH
<ASSISTANT_TASK:>
Python Code:
def execute_notebook(nbfile):
    
    with io.open(nbfile) as f:
        nb = current.read(f, 'json')
    
    ip = get_ipython()
    
    for cell in nb.worksheets[0].cells:
        if cell.cell_type != 'code':
            continue
        ip.run_cell(cell.input)
Explanation: Notebook Import
End of explanation
#execute_notebook("PORCENTAGENS ESTADOS.ipynb")
Explanation: Notebook Execute
End of explanation
def read_csv2(filename):
    with open(filename, "rb") as f:
        lines = [l.decode('utf8', 'ignore') for l in f.readlines()]     
        reader = csv.DictReader(lines , delimiter=';')
    return list(reader)        
Explanation: plot_graph(Cotistas , "Pretos Pardos e Indígenas")
Read CSV
End of explanation
Unsorted_allCandidates = read_csv2("CANDIDATOS_NOTA_NOME_CERTO.csv")
Unsorted_allCandidates[0:50]
display3 = pd.DataFrame(Unsorted_allCandidates)
display3
Explanation: IMPORT ALL CANDIDATES CSV
End of explanation
def make_date(date):
    if date == '':
        return None
    else:
        return dt.strptime(date, '%d/%m/%Y')
def make_boolean(data):
    if data == "SIM":
        return True
    elif data =="NÃO":
        return False  
def make_float(data):
    if data =="":
        return 0
    else:
        return float(data)
def make_int(data):
    if data =="":
        return 0
    else:
        return int(data)
def tipo_cota_clean(data):
    if data =="":
        return None
    else:
        return data
def make_str(data):
    if data =="":
        return data
    else:
        return str(data)
def make_upper(data):
    return data.upper()
Unsorted_allCandidates[0]
Explanation: Get CPFs
cpfs = list()
for i in allCandidates:
    cpfs.append(i["CPF"])
outF = open("myOutFile.txt", "w")
for line in cpfs:
  outF.write(line)
  outF.write("\n")
outF.close()
DATA CLEANUP
End of explanation
#def make_random_int(data):
 #   if data =="":
  #      return random.randint(0 , 1000)
   # else:
    #    return float(data)
for i in Unsorted_allCandidates:
    i["nascimento"] = make_date(i["nascimento"])
    i["surdo"] = make_boolean(i["surdo"])
    i["Cota"] = make_boolean(i["Cota"])
    i["Tipo cota"] = tipo_cota_clean(i["Tipo cota"]) 
    i["Pont"] = make_float(i["Pont"])
    i["Ano ENEM"] = make_int(i["Ano ENEM"])
    i["\ufeffNome"] = make_str(i["\ufeffNome"])
    i["\ufeffNome"] = make_upper(i["\ufeffNome"])
    #i["Pont"] = make_random_int(i["Pont"])
    
len(Unsorted_allCandidates)
Explanation: DELETAR
GERADOR DE PONTUAÇÃO
End of explanation
def polo_selector(polo , data):
    for i in data[:]:
        if i["Polo desejado"] != polo:
            data.remove(i)  
        
    return data        
polo_selector(polo , Unsorted_allCandidates)
Explanation: FILTRO DE POLO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
End of explanation
allCandidates = sorted(Unsorted_allCandidates, key = lambda element: element["Pont"], reverse=True)
Display_allCandidatas = pd.DataFrame(allCandidates)
Display_allCandidatas[:50]
Explanation: SORT BY SCORE
End of explanation
def is_surdo(data, field, surdo, ouvinte ):
    if data[field]:
        return surdo.append(i)
    else:
        return ouvinte.append(i)
            
candidatos_surdos = list()
candidatos_ouvintes = list()
for i in allCandidates:
    is_surdo(i , "surdo" , candidatos_surdos, candidatos_ouvintes)
len(candidatos_ouvintes)
len(candidatos_surdos)
Explanation: separacao = list()
for i in allCandidates:
    if i["Tipo cota"] =="A":
        separacao.append(i)
Display_separacao = pd.DataFrame(separacao)
Display_separacao
SPLIT SURDOS E OUVINTES
End of explanation
print ("CHECK - Total de Candidatos = ",(len(candidatos_ouvintes) + len(candidatos_surdos)))
for i in candidatos_ouvintes:
    if i["surdo"]:
        print ("ERROR = ", i)
    
        
for i in candidatos_surdos:
    if not i["surdo"]:
        print ("ERROR = ",i)
    
    
Explanation: CHECK LISTS SPLIT
End of explanation
ampla_con , cota_A , cota_B , cota_C , cota_D , cota_E , cota_F , cota_G , cota_H = list(),list(),list(),list(),list(),list(),list(),list(),list()
Explanation: Divisão das cotas
a)  Candidatos com renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo, que tenham cursado integralmente o ensino médio em escolas públicas.
b) Candidatos com deficiência que tenha renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo, que tenham cursado integralmente o ensino médio em escolas públicas.
c) Candidatos autodeclarados pretos, pardos ou indígenas, com renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo e que tenham cursado integralmente o ensino médio em escola pública.
d) Candidatos com deficiência autodeclarados pretos, pardos ou indígenas, com renda familiar bruta per capita igual ou inferior a 1,5 salário mínimo e que tenham cursado integralmente o ensino médio em escola pública.
e) Candidatos que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
f) Candidatos com deficiência que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
g) Candidatos autodeclarados pretos, pardos ou indígenas que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
h) Candidatos com deficiência autodeclarados pretos, pardos ou indígenas que, independente da renda, tenham cursado integralmente o ensino médio em escolas públicas.
End of explanation
def cotas(data , field):  
    counter_AMPLA , counter_A , counter_B , counter_C , counter_D , counter_E ,\
    counter_F , counter_G , counter_H, counter_error = 0,0,0,0,0,0,0,0,0,0
    for i in data:
        if i[field] == None:
            counter_AMPLA += 1
            ampla_con.append(i)
        elif i[field] == "A":
            counter_A += 1
            cota_A.append(i)
        elif i[field] == "B":
            counter_B += 1
            cota_B.append(i)
        elif i[field] == "C":
            counter_C += 1
            cota_C.append(i)
        elif i[field] == "D":
            counter_D += 1
            cota_D.append(i)
        elif i[field] == "E":
            counter_E += 1
            cota_E.append(i)
        elif i[field] == "F":
            counter_F += 1
            cota_F.append(i)
        elif i[field] == "G":
            counter_G += 1
            cota_G.append(i)
        elif i[field] == "H":
            counter_H += 1
            cota_H.append(i)
        else:
            counter_error += 1
    
    return counter_AMPLA , counter_A , counter_B , counter_C , counter_D , counter_E ,\
    counter_F , counter_G , counter_H, counter_error
            
    
cotas(allCandidates , "Tipo cota")
Explanation: NUMERO DE COTISTAS
End of explanation
print ((len(cota_A)) +\
(len(cota_B))+\
(len(cota_C))+\
(len(cota_D))+\
(len(cota_E))+\
(len(cota_F))+\
(len(cota_G))+\
(len(cota_H))+\
(len(ampla_con)))
print("COTA A =",len(cota_A),\
      "COTA B =",len(cota_B),\
      "COTA C =",len(cota_C),\
      "COTA D =",len(cota_D),\
      "COTA E =",len(cota_E),\
      "COTA F =",len(cota_F),\
      "COTA G =",len(cota_G),\
      "COTA H =",len(cota_H),\
      "Ampla =",len(ampla_con))
Explanation: CHECK SPLIT COTAS
End of explanation
def clear_aprovados(data, check):
    counter = 0
    for i in data[:]: 
        if i in check:            
            data.remove(i)
            counter += 1
    print(counter)
            
Explanation: LIMPAR APROVADOS DA LISTA GERAL
End of explanation
surdos_aprovados = candidatos_surdos[:14]
print (len(surdos_aprovados))
print (len(allCandidates))
Explanation: Definição dos surdos aprovados
End of explanation
Alunos_Aprovados_Finais = list()
Explanation: Criação dos aprovados finais
End of explanation
clear_aprovados(allCandidates , surdos_aprovados)
len(allCandidates)
Display_allCandidatas[:30]
Display_surdos_aprovados = pd.DataFrame(surdos_aprovados)
Display_surdos_aprovados
Explanation: Exclui surdos aprovados da lista geral
End of explanation
Ac = A
Bc = B
Cc = C
Dc = D
Ec = E
Fc = F
Gc = G
Hc = H
Amplac = Ampla
print(A,B,C,D,E,F,G,H,Ampla)
counter_vagas = 0
counter_vagas_nao_cota = 0
counter_vagas_ouvintes = 0
counter_vagas_ouvintes_nao_cota = 0
Explanation: !!!!!!!DEFINIÇÃO DO NUMERO DE VAGAS POR COTA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
End of explanation
# FIRST FASE - Pega todos os surdos e aplica a regra de cotas e ampla concorrência
for i in surdos_aprovados[:]:    
    if i in cota_A[:]:
        if A > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_A.remove(i)            
            A -= 1
            counter_vagas+=1
            print ("A = ", A)
for i in surdos_aprovados[:]:            
    if i in cota_B[:]:
        if B > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_B.remove(i)
            B -= 1
            counter_vagas+=1
            print ("B = ", B)
for i in surdos_aprovados[:]:
    if i in cota_C[:]:
        if C > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_C.remove(i)
            C -= 1
            counter_vagas+=1
            print ("C = ", C)
for i in surdos_aprovados[:]:            
    if i in cota_D[:]:
        if D > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_D.remove(i)
            D -= 1
            counter_vagas+=1
            print ("D = ", D)
for i in surdos_aprovados[:]:            
    if i in cota_E[:]:
        if E > 0:
            Alunos_Aprovados_Finais.append(i)
            cota_E.remove(i)
            E -= 1
            counter_vagas+=1
            print ("E = ", E)
for i in surdos_aprovados[:]:            
    if i in cota_F[:]:
        if F > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_F.remove(i)
            F -= 1
            counter_vagas+=1
            print ("F = ", F)
for i in surdos_aprovados[:]:            
    if i in cota_G[:]:
        if G > 0:
            Alunos_Aprovados_Finais.append(i)
            cota_G.remove(i)
            G -= 1
            counter_vagas+=1
            print ("G = ", G)
for i in surdos_aprovados[:]:            
    if i in cota_H[:]:
        if H > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_H.remove(i)
            H -= 1
            counter_vagas+=1
            print ("H = ", H)
            
for i in surdos_aprovados[:]:   
    if i in ampla_con[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            ampla_con.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
# SECOND FASE - Coloca todos os surdos restantes (cotistas)
#               na ampla concorrência e retira da lista original de cotas
for i in surdos_aprovados[:]:    
    if i in cota_A[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_A.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:            
    if i in cota_B[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_B.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:
    if i in cota_C[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_C.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:            
    if i in cota_D[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_D.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:            
    if i in cota_E[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_E.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:            
    if i in cota_F[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_F.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:            
    if i in cota_G[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_G.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
for i in surdos_aprovados[:]:            
    if i in cota_H[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_H.remove(i)            
            Ampla -= 1
            counter_vagas_nao_cota+=1
            print ("Ampla = ", Ampla)
print("COTAS preenchidas por surdos - ",\
      "A =",Ac - A,\
      "B =",Bc - B,\
      "C =",Cc - C,\
      "D =",Dc - D,\
      "E =",Ec - E,\
      "F =",Fc - F,\
      "G =",Gc - G,\
      "H =",Hc - H,\
      "Ampla =",Amplac - Ampla)
print("SOBRA DE COTAS para ouvintes - " , "A =",A,\
      "B =",B,\
      "C =",C,\
      "D =",D,\
      "E =",E,\
      "F =",F,\
      "G =",G,\
      "H =",H,\
      "Ampla =",Ampla)
print("Total de vagas de COTAS preenchidas por SURDOS = ",counter_vagas)
print("Total de vagas de AMPLA preenchidas por SURDOS = ",counter_vagas_nao_cota)
Explanation: Selecionador de vagas para surdos
End of explanation
# FIRST FASE - Pega todos os OUVINTES e aplica a regra de cotas e ampla concorrência
for i in candidatos_ouvintes[:]:    
    if i in cota_A[:]:
        if A > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_A.remove(i)            
            A -= 1
            counter_vagas_ouvintes+=1
            print ("A = ", A)
for i in candidatos_ouvintes[:]:    
    if i in cota_B[:]:
        if B > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_B.remove(i)
            B -= 1
            counter_vagas_ouvintes+=1
            print ("B = ", B)
for i in candidatos_ouvintes[:]:    
    if i in cota_C[:]:
        if C > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_C.remove(i)
            C -= 1
            counter_vagas_ouvintes+=1
            print ("C = ", C)
for i in candidatos_ouvintes[:]:    
    if i in cota_D[:]:
        if D > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_D.remove(i)
            D -= 1
            counter_vagas_ouvintes+=1
            print ("D = ", D)
for i in candidatos_ouvintes[:]:    
    if i in cota_E[:]:
        if E > 0:
            Alunos_Aprovados_Finais.append(i)
            cota_E.remove(i)
            E -= 1
            counter_vagas_ouvintes+=1
            print ("E = ", E)
for i in candidatos_ouvintes[:]:    
    if i in cota_F[:]:
        if F > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_F.remove(i)
            F -= 1
            counter_vagas_ouvintes+=1
            print ("F = ", F)
for i in candidatos_ouvintes[:]:    
    if i in cota_G[:]:
        if G > 0:
            Alunos_Aprovados_Finais.append(i)
            cota_G.remove(i)
            G -= 1
            counter_vagas_ouvintes+=1
            print ("G = ", G)
for i in candidatos_ouvintes[:]:    
    if i in cota_H[:]:
        if H > 0:        
            Alunos_Aprovados_Finais.append(i)
            cota_H.remove(i)
            H -= 1
            counter_vagas_ouvintes+=1
            print ("H = ", H)
            
for i in candidatos_ouvintes[:]:    
    if i not in Alunos_Aprovados_Finais[:]:
        if Ampla > 0:        
            Alunos_Aprovados_Finais.append(i)
                        
            Ampla -= 1
            counter_vagas_ouvintes_nao_cota+=1
            
            i["Tipo cota"] = "Ampla"
            
            print ("Ampla = ", Ampla)
            
print("Total de vagas de COTAS preenchidas por OUVINTES = ",counter_vagas)
print("Total de vagas de AMPLA preenchidas por OUVINTES = ",counter_vagas_nao_cota)
Explanation: SELECIONADOR DE VAGAS DOS OUVINTES
End of explanation
Alunos_Aprovados_Finais_Ordenado = sorted(Alunos_Aprovados_Finais, key = lambda element: element["Pont"], reverse=True)
Display_Alunos_Aprovados_Finais = pd.DataFrame(Alunos_Aprovados_Finais_Ordenado)
Display_Alunos_Aprovados_Finais
Explanation: ORDENA POR NOTA
End of explanation
ouvintes_aprovados_lista_1 = list()
def list_divide(data_in , data_out, field):
    for i in data_in[:]:
        if i[field] == False:
            data_out.append(i)
    return data_out    
list_divide(Alunos_Aprovados_Finais_Ordenado , ouvintes_aprovados_lista_1, "surdo")
Display_Ouvintes_aprovados = pd.DataFrame(ouvintes_aprovados_lista_1)
#Display_Ouvintes_aprovados
#Display_surdos_aprovados
Display_Alunos_Aprovados_Finais
#export_Alunos_Aprovados = pd.ExcelWriter("Lista_01_POLO_INES.xlsx" , engine = 'xlsxwriter')
#Display_Alunos_Aprovados_Finais.to_excel(export_Alunos_Aprovados, index=False, sheet_name="Lista_01_INES")
#export_Alunos_Aprovados.save()
Explanation: Divisão da Lista
End of explanation
def write_csv(outputname , listname):
    with open(outputname, "w") as output:
        fieldnames = ["\ufeffNome" , "CPF" , "Classificação"]
        writer = csv.DictWriter(output, fieldnames=fieldnames , delimiter = ";")
        return writer.writerows(listname)
Alunos_aprovados_finais_MSTECH = Alunos_Aprovados_Finais_Ordenado[:]
for i in Alunos_aprovados_finais_MSTECH[:]:
    del i["RG"]
    del i["nascimento"]
    del i["Ano ENEM"]
    del i["Pont"]
    del i["surdo"]
    del i["Cota"]
    del i["Tipo cota"]
    del i["ENEM"]
    del i["Polo desejado"]
for index, value in enumerate(Alunos_aprovados_finais_MSTECH[:],1):
    value["Classificação"] = index
Alunos_Aprovados_TI = copy.deepcopy(Alunos_aprovados_finais_MSTECH)
for i in Alunos_Aprovados_TI:
    list_str =list(i["CPF"])
    list_str[0],list_str[1],list_str[2],list_str[3],list_str[4],list_str[5] = "X","X","X","X","X","X"
    i["CPF"] = "".join(list_str)
    
Display_LISTA_TI = pd.DataFrame(Alunos_Aprovados_TI)
cols = Display_LISTA_TI.columns.tolist()
cols    
cols = cols[-1:] + cols[:-1]
cols
Display_LISTA_TI = Display_LISTA_TI[cols]
Display_Alunos_Aprovados_Finais
Alunos_aprovados_finais_MSTECH
Display_LISTA_TI
name01 = "#ALUNOS_01_" + polo +".xlsx"
name02 = "#MS_" + polo + ".csv"
name03 = "#DIVULGACAO_" + polo +".xlsx"
print (name01)
print (name02)
print (name03)
export_Alunos_Aprovados = pd.ExcelWriter(name01 , engine = 'xlsxwriter')
Display_Alunos_Aprovados_Finais.to_excel(export_Alunos_Aprovados, index=False, sheet_name="Lista_01")
export_Alunos_Aprovados.save()
write_csv(name02, Alunos_aprovados_finais_MSTECH)
export_Alunos_Aprovados = pd.ExcelWriter(name03 , engine = 'xlsxwriter')
Display_LISTA_TI.to_excel(export_Alunos_Aprovados, index=False, sheet_name="Lista_01")
export_Alunos_Aprovados.save()
Explanation: LISTA PARA MSTECH
End of explanation
<END_TASK>