Pandarallel не меняет одну глобальную переменную - PullRequest
0 голосов
/ 14 февраля 2020
tabela_bi = pd.DataFrame(data=0,index=df_dia2['NU_INSCRICAO'].astype(int),columns=range(1,46))

def corrige_prova(x):
global tabela_bi
num_inscricao = x['NU_INSCRICAO']
vetor_resposta = x['TX_RESPOSTAS_MT']
vetor_gabarito = x['DS_GABARITO_MT']
l = []
for k,(v,g) in enumerate(zip(vetor_resposta,vetor_gabarito)):
if v==g:
aux=pivot[4].iloc[k,1]
l.append(aux)
tabela_bi.loc[num_inscricao,aux]=1
return l
pandarallel.initialize(progress_bar=True,use_memory_fs=True)
start_corrige = time.perf_counter()

df_dia2.loc[:,'TX_ACERTOS_MT'] = df_dia2.parallel_apply(corrige_prova,axis=1)
df_dia2.loc[:,'NU_ACERTOS_MT'] = df_dia2.loc[:,'TX_ACERTOS_MT'].map(len)

end_corrige = time.perf_counter()
print('Tempo de execução função <corrige_prova>: {}'.format(round(end_corrige-start_corrige,4)))

У меня есть два списка из 45 позиций (с именем vetor_resposta и vetor_gabarito), каждый раз, когда они равны, мне нужно сохранить положение в другом списке (с именем l). С этой работой все в порядке. Мне также нужно создать DataFrame с 0,1 (0 - ошибка, 1 - хит). Это df, я вызвал tabela_bi, но этот код не меняет этот DataFrame ... Можете ли вы мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...