Created
June 21, 2023 12:19
-
-
Save JajoScript/cac7ca07cbc62859e3c2f9233288f20b to your computer and use it in GitHub Desktop.
Menu principal y procesamiento de datos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# *-- Dependencias. | |
import os | |
import pandas as pd | |
# * -- Variables globales. | |
matriz_datos: list = [] | |
""" | |
[Id Empresa,Nombre Empresa,Pais,Fundacion,Industria,Empleados,Ingresos Anuales(USD MM),Gastos Anuales(USD MM)] | |
""" | |
# *-- Funciones. | |
def leer_archivo(nombre_archivo: str) -> None: | |
Archivo = open(nombre_archivo, "rt", encoding="utf-8") | |
num_linea = 0 | |
for linea in Archivo: | |
# Limpiar el ultimo salto de linea. | |
linea = linea.strip() | |
fila = linea.split(",") | |
# Omitir la primera fila del archivo, para no almacenar las cabeceras en la matriz de datos. | |
if (num_linea == 0): | |
num_linea += 1 | |
continue | |
# Reemplazar los valores vacíos de la columna [Pais] por "SIN DATOS" | |
"""1a. Cambie todos los valores vacíos de la columna [Pais] por "SIN DATOS""" | |
if (fila[2] == ""): | |
fila[2] = "SIN DATOS" | |
"""1c. Remueva el símbolo "$" de las columnas [Ingresos Anuales(USD MM)] y [Gastos Anuales(USDMM)]. Puede cambiar el nombre de las columnas""" | |
fila[6] = fila[6].replace("$", "") | |
fila[7] = fila[7].replace("$", "") | |
# Identificar las filas que no tienen datos vacios. | |
"""1b. Remueva todas las filas que tengan algún valor vacío.""" | |
if not ("" in fila): | |
matriz_datos.append(list(fila)) | |
else: | |
print(f"[!] Fila con datos vacios: \n{fila}") | |
# Iteracion | |
num_linea += 1 | |
Archivo.close() | |
# * -- Funciones de uso general para el programa. | |
def mostrar_datos() -> None: | |
print("Datos del archivo".center(50, "=")) | |
num = 0 | |
for fila in matriz_datos: | |
print(f"{num} - {fila}") | |
num += 1 | |
# df = pd.DataFrame(matriz_datos) | |
# print(df.describe()) | |
def analisis_archivo() -> None: | |
print("[*] Analizando el archivo de datos...") | |
# Leer el archivo de datos. | |
nombre_archivo = "1_EmpresasInversiones_One.csv" | |
leer_archivo(nombre_archivo) | |
mostrar_datos() | |
# Temporal, para que no se limpie la pantalla al terminar de leer el archivo. | |
input("[>] Presione enter para continuar...") | |
def analitica_1() -> None: | |
print("[*] Analítica de datos 1...") | |
input("[>] Presione enter para continuar...") # Temporal. | |
def analitica_2() -> None: | |
print("[*] Analítica de datos 2...") | |
input("[>] Presione enter para continuar...") # Temporal. | |
def limpiar_pantalla() -> None: | |
os.system('cls' if os.name == 'nt' else 'clear') | |
def salir() -> None: | |
print("[*] Saliendo del programa...") | |
exit(0) | |
def menu_principal() -> None: | |
while True: | |
limpiar_pantalla() | |
print("✨ Menú principal ✨".center(50, "=")) | |
print("[1] Análisis del archivo de datos.") | |
print("[2] Analítica de datos 1") | |
print("[3] Analítica de datos 2") | |
print("[4] Salir") | |
print() | |
opcion = input("[>] Ingrese una opcion: ") | |
# Evaluar la opción ingresada. | |
if (opcion == "1"): | |
analisis_archivo() | |
elif (opcion == "2"): | |
analitica_1() | |
elif (opcion == "3"): | |
analitica_2() | |
elif (opcion == "4"): | |
break | |
else: | |
print("[🥺] Opción inválida!") | |
salir() | |
def main() -> None: | |
menu_principal() | |
# *-- Ejecución. | |
if (__name__ == '__main__'): | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment