Skip to content
Snippets Groups Projects
Commit 11756988 authored by Epitácio Bessa da Silva's avatar Epitácio Bessa da Silva
Browse files

Alguns comentários

parent 64fb6bd5
Branches master
No related tags found
No related merge requests found
......@@ -14,37 +14,39 @@ def separar_coligacao(partido_coligacao):
df_eleicao['Partido/Coligação'] = df_eleicao['Partido/Coligação'].apply(separar_coligacao)
# agrupando e somando os votos de cada partido/coligacao
votacao = df_eleicao.groupby(['Partido/Coligação']).sum()
votos_coligacao = df_eleicao.groupby(['Partido/Coligação']).sum()
# cálculo do Quociente partidário
votacao['QP'] = votacao['Votos']//QE
votos_coligacao['QP'] = votos_coligacao['Votos']//QE
# ir atualizando a quantide de vagas já preenchidas
cadeiras_restante = total_cadeiras - votacao['QP'].sum()
cadeiras_restante = total_cadeiras - votos_coligacao['QP'].sum()
# removendo partidos com o QP igual a 0. Eles não participam do cálculo da média
votacao.drop(votacao[votacao['QP'] == 0].index, inplace=True)
votos_coligacao.drop(votos_coligacao[votos_coligacao['QP'] == 0].index, inplace=True)
# criando uma nova coluna para a distribuição.
votacao = votacao.assign(VagasResiduais = votacao['QP'])
votos_coligacao = votos_coligacao.assign(VagasResiduais = votos_coligacao['QP'])
# enquanto total_cadeiras não for atigindo, continua a calcular a media
for vagas in range(0,cadeiras_restante):
# calculando a média
votacao['Media'] = votacao['Votos']/(votacao['VagasResiduais']+1)
votos_coligacao['Media'] = votos_coligacao['Votos']/(votos_coligacao['VagasResiduais']+1)
# verifica a média máxima
votacao.loc[votacao['Media'] == votacao['Media'].max(), 'VagasResiduais'] +=1
votos_coligacao.loc[votos_coligacao['Media'] == votos_coligacao['Media'].max(), 'VagasResiduais'] +=1
# limpando os dados (removendo colunas descenessárias a partir de agora)
votacao.drop(['QP','Media','Número'], inplace=True, axis=1)
votos_coligacao.drop(['QP','Media','Número'], inplace=True, axis=1)
# ordenando pelos votos
df_eleicao.sort_values('Votos',ascending=False,inplace=True)
# pegando o resultado da eleição
resultado = pd.DataFrame()
for i in votacao.itertuples():
resultado = resultado.append(df_eleicao.loc[df_eleicao['Partido/Coligação'] == i[0]].iloc[:i[2]])
for coligacao in votos_coligacao.itertuples():
# coligacao[0] é o index(nome da coligacao) e coligacao[2] é a quantidade de vagas
# pega os n primeiros de cada coligação de acordo com as vagas
resultado = resultado.append(df_eleicao.loc[df_eleicao['Partido/Coligação'] == coligacao[0]].iloc[:coligacao[2]])
# ordenando os candidos em forma decrescente
resultado.sort_values('Votos',ascending=False,inplace=True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment