-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changing the language of the practice 9
- Loading branch information
1 parent
cb948b7
commit 6eaf891
Showing
1 changed file
with
55 additions
and
56 deletions.
There are no files selected for viewing
111 changes: 55 additions & 56 deletions
111
Third Semester/Data Structures and Algorithms II/Practice 10/practica_10.py
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,81 +1,80 @@ | ||
import os | ||
|
||
def run(): | ||
casos_estado = {} | ||
casos_totales = 0 | ||
casos_generos = {'M': 0, 'F': 0} | ||
casos_edades = {} | ||
cases_per_state = {} | ||
total_cases = 0 | ||
gender_cases = {'M': 0, 'F': 0} | ||
age_cases = {} | ||
|
||
try: | ||
archivo = open("covid-19-mexico-01122020.csv", "r", encoding="utf-8") | ||
lineas = archivo.readlines() | ||
file = open("covid-19-mexico-01122020.csv", "r", encoding="utf-8") | ||
lines = file.readlines() | ||
|
||
# Obtengo el total de casos y el caso por estado | ||
for i in range(1, len(lineas)): | ||
# Obtengo el total de cases y el caso por state | ||
for i in range(1, len(lines)): | ||
# Obtengo los datos de la linea | ||
linea_separada = lineas[i].split(",") | ||
# Obtengo el estado | ||
estado = linea_separada[1] | ||
line_separated = lines[i].split(",") | ||
# Obtengo el state | ||
state = line_separated[1] | ||
# Sumo un caso | ||
casos_totales += 1 | ||
# Obtengo el genero | ||
genero = linea_separada[2] | ||
# Sumo un caso al genero | ||
casos_generos[genero] += 1 | ||
# Obtengo la edad | ||
edad = linea_separada[3] | ||
# Si la edad no esta en el diccionario, la agrego | ||
casos_edades[edad] = casos_edades.get(edad, 0) + 1 | ||
casos_estado[estado] = casos_estado.get(estado, 0) + 1 | ||
total_cases += 1 | ||
# Obtengo el gender | ||
gender = line_separated[2] | ||
# Sumo un caso al gender | ||
gender_cases[gender] += 1 | ||
# Obtengo la age | ||
age = line_separated[3] | ||
# Si la age no esta en el diccionario, la agrego | ||
age_cases[age] = age_cases.get(age, 0) + 1 | ||
cases_per_state[state] = cases_per_state.get(state, 0) + 1 | ||
|
||
# Cierro el archivo | ||
archivo.close() | ||
# Cierro el file | ||
file.close() | ||
|
||
# Ordeno los estados por el total de casos | ||
estados_ordenados = sorted(casos_estado, key=casos_estado.get, reverse=True) | ||
# Ordeno los states por el total de cases | ||
sorted_states = sorted(cases_per_state, key=cases_per_state.get, reverse=True) | ||
|
||
# Guardo el estado con mas casos | ||
estado_mas_casos = estados_ordenados[0] | ||
# Guardo el state con mas cases | ||
state_with_more_cases = sorted_states[0] | ||
|
||
# Guardo el estado con menos casos | ||
estado_menos_casos = estados_ordenados[len(estados_ordenados) - 1] | ||
# Guardo el state con menos cases | ||
state_with_less_cases = sorted_states[len(sorted_states) - 1] | ||
|
||
# Obtengo el total de casos por genero | ||
total_genero_m = casos_generos['M'] | ||
total_genero_f = casos_generos['F'] | ||
# Obtengo el total de cases por gender | ||
total_gender_male = gender_cases['M'] | ||
total_gender_female = gender_cases['F'] | ||
|
||
# Promedio de edad | ||
promedio_edad = 0 | ||
for edad in casos_edades.keys(): | ||
promedio_edad += int(edad) * casos_edades[edad] | ||
# Promedio de age | ||
age_avarage = 0 | ||
for age in age_cases.keys(): | ||
age_avarage += int(age) * age_cases[age] | ||
|
||
promedio_edad = promedio_edad / casos_totales | ||
age_avarage = age_avarage / total_cases | ||
|
||
# Edad minima y maxima | ||
edad_minima = min(casos_edades.keys()) | ||
edad_maxima = max(casos_edades.keys()) | ||
# age minima y maxima | ||
minimum_age = min(age_cases.keys()) | ||
maximum_age = max(age_cases.keys()) | ||
|
||
if not os.path.exists("PracticaResumen"): | ||
os.mkdir("PracticaResumen") | ||
|
||
# Guardo los datos en un archivo | ||
with open("PracticaResumen/resumenCovid.eda2", "w", encoding="utf-8") as archivo2: | ||
archivo2.write("\nTotal de casos: " + str(casos_totales) + "\n") | ||
archivo2.write("\nEstado con mas casos: " + estado_mas_casos + "\n") | ||
archivo2.write("\nEstado con menos casos: " + estado_menos_casos + "\n") | ||
archivo2.write("\nTotal de casos por genero:" + "\n") | ||
archivo2.write("\tMasculino: " + str(total_genero_m) + "\n") | ||
archivo2.write("\tFemenino: " + str(total_genero_f) + "\n") | ||
archivo2.write("\nPromedio de edad: " + str(promedio_edad) + "\n") | ||
archivo2.write("\nEdad minima: " + str(edad_minima) + "\n") | ||
archivo2.write("\nEdad maxima: " + str(edad_maxima) + "\n") | ||
archivo2.write("\nCasos por estado:" + "\n") | ||
for estado in estados_ordenados: | ||
archivo2.write("\t"+estado + ": " + str(casos_estado[estado]) + "\n") | ||
# Guardo los datos en un file | ||
with open("PracticaResumen/resumenCovid.eda2", "w", encoding="utf-8") as file2: | ||
file2.write("\nTotal of cases: " + str(total_cases) + "\n") | ||
file2.write("\nState with more cases: " + state_with_more_cases + "\n") | ||
file2.write("\nState with less cases: " + state_with_less_cases + "\n") | ||
file2.write("\nTotal cases per gender:" + "\n") | ||
file2.write("\tMale: " + str(total_gender_male) + "\n") | ||
file2.write("\tFemale: " + str(total_gender_female) + "\n") | ||
file2.write("\nAvarage age: " + str(age_avarage) + "\n") | ||
file2.write("\nMinimum age: " + str(minimum_age) + "\n") | ||
file2.write("\nMaximum age: " + str(maximum_age) + "\n") | ||
file2.write("\nCases per state:" + "\n") | ||
for state in sorted_states: | ||
file2.write("\t"+state + ": " + str(cases_per_state[state]) + "\n") | ||
|
||
except FileNotFoundError: | ||
print("El archivo no existe") | ||
|
||
print("The file doesn't exist") | ||
|
||
if __name__ == '__main__': | ||
run() |