Refactorización de código a clase

This commit is contained in:
Gregorio Reyes 2022-11-29 22:00:38 -06:00
parent f0c39fbe98
commit b1367ba95f
1 changed files with 53 additions and 11 deletions

View File

@ -1,18 +1,60 @@
import numpy as np
import pandas as pd
df = pd.read_csv("../../data/dvgm.csv")
print("Visualización de la base de datos")
print(df)
atributos = df.columns.values
print("\nVisualización de los atributos")
print(atributos)
class BaseDeDatos:
"""Clase que manipula los datos trabajados."""
print("\nVisualización de los tipos de datos")
print(df.info())
def __init__(self):
"""Función que inicializa la clase.
Se establecen los métodos que se deben ejecutar al inicializar la clase.
"""
self.leer_datos()
self.definir_variables()
self.preprocesar_datos()
self.visualizar_basicos()
self.imprimir_atributos_agrupados()
def leer_datos(self):
"""Método que lee los datos."""
data_path = "../../data/dvgm.csv"
self.df = pd.read_csv(data_path)
def definir_variables(self):
"""Método que define variables necesarias respecto a los datos."""
self.atributos = self.df.columns.values
def preprocesar_datos(self):
"""Método que preprocesa los datos que lo requieren."""
self.df.loc[:, "fecha_completa"] = self.df.loc[:, "fecha"] + \
" " + self.df.loc[:, "hora_recepcion"]
self.df.loc[:, "fecha_completa"] = pd.to_datetime(
self.df.loc[:, "fecha_completa"], format="%d/%m/%y %H:%M:%S")
def visualizar_basicos(self):
"""Método que imprime una visualización básica de los datos."""
print("Visualización de la base de datos")
print(self.df)
print("\nVisualización de los atributos")
print(self.atributos)
print("\nVisualización de los tipos de datos")
print(self.df.info())
def imprimir_atributos_agrupados(self):
"""Método que imprime los valores de cada atributo y su respectivo conteo."""
for atributo in self.atributos:
recopilado = self.df.groupby(atributo).count().iloc[:, 0].copy()
print("\n\nAtributo agrupado: {}\n".format(atributo))
print(recopilado)
for atributo in atributos:
recopilado = df.groupby(atributo).count().iloc[:, 0].copy()
print(recopilado)
if __name__ == "__main__":
bd = BaseDeDatos()