47 lines
1.7 KiB
Python
47 lines
1.7 KiB
Python
#TPC1: Análise de dados: doença cardíaca
|
|
#
|
|
#Descarregue o ficheiro de dados: myheart.csv Crie um programa em Python, conjunto de funções, que responda às seguintes questões:
|
|
#
|
|
# Crie uma função que lê a informação do ficheiro para um modelo, previamente pensado em memória;
|
|
# Pense num modelo para guardar uma distribuição;
|
|
# Crie uma função que calcula a distribuição da doença por sexo;
|
|
# Crie uma função que calcula a distribuição da doença por escalões etários. Considere os seguintes escalões: [30-34], [35-39], [40-44], ...
|
|
# Crie uma função que calcula a distribuição da doença por níveis de colesterol. Considere um nível igual a um intervalo de 10 unidades, comece no limite inferior e crie os níveis necessários até abranger o limite superior;
|
|
# Crie uma função que imprime na forma de uma tabela uma distribuição;
|
|
# Especifique um programa que ao executar apresenta as tabelas correspondentes às distribuições pedidas;
|
|
# Extra: explore o módulo matplotlib e crie gráficos para as suas distribuições.
|
|
|
|
|
|
from dataclasses import dataclass
|
|
from sys import argv
|
|
|
|
@dataclass
|
|
class Person:
|
|
idade: int
|
|
sexo: str
|
|
tensao: int
|
|
colesterol: int
|
|
batimento: int
|
|
temDoenca: bool
|
|
|
|
people = []
|
|
|
|
def read(path):
|
|
file = open(path, 'r')
|
|
lines = file.readlines()
|
|
|
|
for line in lines[1:]:
|
|
field_list = line.split(',')
|
|
|
|
idade = int(field_list[0])
|
|
sexo = field_list[1]
|
|
tensao = int(field_list[2])
|
|
colesterol = int(field_list[3])
|
|
batimento = int(field_list[4])
|
|
temDoenca = bool(int(field_list[5]))
|
|
|
|
people.append(Person(idade,sexo,tensao,colesterol,batimento,temDoenca))
|
|
|
|
|
|
read(argv[1])
|
|
print(people)
|