Discover percentage in repeated numbers - Python - Statistics [closed]

-1

Good morning everyone. I need to solve a statistical problem. But I find it difficult to find the percentage of the grouped numbers that repeat themselves. can anybody help me? Thanks in advance, follow code:

import os
import math
import numpy as quartil

print("\nOs dados abaixo referem-se ao número de alunos formados no curso técnico da ETEC entre 1991 e 2015."
      "\nConstrua a tabela (1) de Distribuição de Frequencias com Freq. Absoluta, Freq. Relativa e Freq. Acumulada."
      "\n")

Dados = []
Dados = raw_input('Entre com os dados, separando por espaço: ').split(';')
print(Dados)
Dados.sort()
print("Rol: ", Dados)
var = quartil.array([Dados])
# quartiles
form2       =   [9,10,11,12,13,14]

#Achar repeticoes
repeticoes =[]
for i in Dados:
    if Dados.count(i) > 1 and i not in repeticoes:
        repeticoes.append(i)
        #porcentagem = int((repeticoes.count(i)*100)/sum(repeticoes))
        #porcentagem.append(i)
print(repeticoes)
#print(porcentagem)

#Achar porcentagem das repeticoes
porcentagem =[]
for i in repeticoes:
    if repeticoes.count(i) > 1 and i not in porcentagem:
        porc = ((repeticoes.count(i)*100)/sum(int(repeticoes)))
        porcentagem.append(porc)
print(porc)
    
asked by anonymous 28.06.2017 / 13:30

1 answer

1
# -*- coding: utf-8 -*-

from collections import Counter

Dados = []
Dados = raw_input('Entre com os dados, separando por espaço: ').split(' ')
print(Dados)

'''Calcular repeticoes, criando um dicionário com o Counter
Counter usa cada elemento único como chave e sua respectiva
quantidade de repetições como valor.'''
repeticoes = Counter(Dados)
print(repeticoes)

#Calcular porcentagem das repeticoes
t = len(Dados) #Quantidade de dados informada na entrada
'''Utilização do Counter "repeticoes" para gerar uma lista
com todas as porcentagens obtidas no map.
repeticoes[x] retorna o valor da chave x no dicionario.'''
porcentagem = list(map(lambda x: repeticoes[x]*100/t, repeticoes))

print(porcentagem)
    
28.06.2017 / 22:40