import pandas as pd
from pathlib import Path
class AnaliseDataset:
def __init__(self, caminho_arquivo):
self.caminho_arquivo = Path(caminho_arquivo)
self.dados = pd.DataFrame()
def ler_dados(self):
if not self.caminho_arquivo.exists():
print("Arquivo não encontrado: {}".format(self.caminho_arquivo))
return
try:
self.dados = pd.read_csv(self.caminho_arquivo)
print("Arquivo lido com sucesso: {}".format(self.caminho_arquivo))
except Exception as e:
print("Erro ao ler o arquivo: {}".format(e))
def tabela_qualitativas_ordinais(self):
if "Anos de Estudo" in self.dados.columns:
anos = pd.DataFrame(sorted(self.dados['Anos de Estudo'].unique()), columns=['Anos de Estudo'])
print("\nTabela - Qualitativa Ordinal (Anos de Estudo):")
print(anos.to_string(index=False))
else:
print("Coluna 'Anos de Estudo' não encontrada.")
def tabela_qualitativas_nominais(self):
for col in ['Sexo','Cor','UF']:
if col in self.dados.columns:
tabela = pd.DataFrame(sorted(self.dados[col].dropna().unique()), columns=[col])
print("\nTabela - Qualitativa Nominal ({0}):".format(col))
print(tabela.to_string(index=False))
if col == 'Sexo':
tabela[col] = tabela[col].map({0:'Masculino',1:'Feminino'}).fillna(tabela[col])
print("\nTabela - Qualitativa Nominal (Sexo):")
print(tabela.to_string(index=False))
else:
print("Coluna '{}' não encontrada.".format(col))
def tabela_quantitativas_discretas(self):
if 'Idade' in self.dados.columns:
idade = self.dados['Idade']
print("\nVariável Quantitativa Discreta (Idade)")
print('De %s até %s anos' % (idade.min(), idade.max()))
else:
print("Coluna 'Idade' não encontrada.")
def tabela_quantitativas_continuas(self):
for col in ['Renda', 'Altura']:
if col in self.dados.columns:
tabela = pd.DataFrame({'Mínimo {}:'.format(col): [self.dados[col].min()],
'Máximo {}:'.format(col): [self.dados[col].max()]}, index=[col])
print("\nVariável Quantitativa Contínua ({})".format(col))
print(tabela.to_string(index=True))
if col == 'Altura':
print("\nTabela - Quantitativa Contínua (Altura):")
print(" De {:.2f} até {:.2f} metros".format(self.dados[col].min(), self.dados[col].max()))
else:
print("Coluna '{}' não encontrada.".format(col))
def informacoes (self):
self.tabela_qualitativas_ordinais()
self.tabela_qualitativas_nominais()
self.tabela_quantitativas_discretas()
self.tabela_quantitativas_continuas()
# --- USO ---
analise = AnaliseDataset("caminho_do_arquivo")
analise.ler_dados()
analise.informacoes()
Além disso, tenho uma dúvida: pretendo trabalhar tanto com back-end quanto com análise de dados. Posso aproveitar meu conhecimento de back-end em Python para análise de dados e, da mesma forma, aplicar conceitos de análise de dados para aprimorar meu trabalho em back-end? Por exemplo, utilizando POO neste curso, pelo menos o básico, sem aprofundar em conceitos como herança e polimorfismo por enquanto, mas planejando incorporá-los ao longo da minha carreira para treinar especificamente esses conceitos?