Skip to content

Instantly share code, notes, and snippets.

@JajoScript
Created June 21, 2023 12:19
Show Gist options
  • Save JajoScript/cac7ca07cbc62859e3c2f9233288f20b to your computer and use it in GitHub Desktop.
Save JajoScript/cac7ca07cbc62859e3c2f9233288f20b to your computer and use it in GitHub Desktop.
Menu principal y procesamiento de datos
# *-- 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