No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
10 Hrs
22 Min
17 Seg

¡Conoce otros proyectos de este curso!

42/44

Lectura

Esta clase es especial. Antes de mostrarte los siguientes pasos, quiero que te tomes un tiempo para acceder y conocer algunos proyectos que han creado otros estudiantes, quienes ya finalizaron el curso.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 17

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El método open() es un generador, entender los métodos:
read()
readline()
readlines()
y cómo operan sobre el archivo .csv que es lo mismo que .txt
y sobre esto aplicar la comprehension, las filter() y map()
es todo lo que hay qué saber para dominar los datos estructurados.
Claro que con las expresiones regulares se reducen las líneas de código pero, creo que es más difícil escalar sus aplicaciones. Larga vida a Platzi

Genial conocer implementaciones de otros estudiantes de lo aprendido en este curso!
Fue muy enriquecedor y productivo, ahora a implementarlo en todos los ámbitos que se nos pueda ocurrir!

El enlace de Gráfica de sistemas operativos ya no está disponible 😦

Apliqué los conocimientos para hacer una gráfica de barras de la emisión total de CO2 (en millones de toneladas métricas) procedente del uso del consumo de hidrocarburos del periodo 1973 al 2023. La fuente de los datos es la U.S. Energy Information Administration Aquí presento el código: ![]()```js import utils import read_csv import charts def run(): data = read_csv.read_csv('./app/Carbon_Dioxide_Emissions1.csv') annual = list(map(lambda x: x['Annual'], data)) total_co2 = list(map(lambda x: int(x['Total Energy']), data)) charts.generate_bar_chart(annual, total_co2) if __name__ == '__main__': run() ``` ![](https://static.platzi.com/media/user_upload/proyecto-142f67e4-a3d1-4dc0-81c0-901ec4e6d9ef.jpg)
Me gustó mucho ver que el estudiante usó la función de .reverse para ordenar los datos de forma ascendente y poder graficar la población mucho mejor. Ver la forma de resolver problemas de los demás es muy interesante!

Excelentes proyectos

genial…!

# Importar las bibliotecas necesarias
import pandas as pd
import matplotlib.pyplot as plt

# Leer el archivo CSV con datos de población mundial
df = pd.read_csv('world_population.csv')

# Solicitar al usuario que ingrese el nombre del país
while True:
    nombre_pais = input("Ingrese el nombre del país: ")

    # Verificar si el país está en el DataFrame
    if nombre_pais in df["Country"].values:
        break  # Salir del bucle si el país es válido
    else:
        print("¡País no encontrado! Por favor, ingrese un país válido.")

# Especificar el nuevo orden de las columnas invirtiendo la lista original
desired_order = [
    '1970 Population', 
    '1980 Population', 
    '1990 Population', 
    '2000 Population', 
    '2010 Population', 
    '2015 Population', 
    '2020 Population', 
    '2022 Population'
]
data = df.loc[df["Country"] == nombre_pais, desired_order]

# Crear un gráfico de barras con los datos seleccionados
# Añadir width para especificar el ancho de las barras
plt.bar(data.columns, data.values[0], width=0.6)  

# Configurar el tamaño de la figura
plt.rcParams['figure.figsize'] = (5, 4)  # Ajustar el tamaño según sea necesario

# Rotar las etiquetas del eje x para mejorar la legibilidad
# Cambiar las etiquetas del eje x
nuevas_etiquetas = ['1970', '1980', '1990', '2000', '2010', '2015', '2020', '2022']
plt.xticks(data.columns, nuevas_etiquetas, rotation=45)

# Marcar el eje y con líneas punteadas para indicar el tamaño de la población
for columna, valor_poblacion in zip(data.columns, data.values[0]):
    plt.axhline(
        y=valor_poblacion, 
        color='gray', 
        linestyle='--', 
        linewidth=0.8)
    
    plt.text(
        columna, 
        valor_poblacion, 
        f'{valor_poblacion:,}', 
        va='bottom', ha='right', 
        fontsize=8, color='black'
    )

# Agregar el nombre del país al gráfico
plt.text(
    0.5, 
    1.1, 
    f'País: {nombre_pais}', 
    transform=plt.gca().transAxes, 
    ha='center', 
    va='center', 
    fontsize=20, 
    color='black'
)


# Mostrar el gráfico
plt.show()

Comparto mi miniproyecto, también lo publique en github. Se en este profundicé en la experiencia de cada estado del archivo, también cree un menú para que el usuario eligiera la opción que fuere. Quizàs puede ser util para cualquier otro ambito. ![](https://static.platzi.com/media/user_upload/Captura%20desde%202024-09-20%2017-04-16-6d5c9f5f-02c4-4ad5-8dcd-110a31ed5a7f.jpg)
Ya he visualizado y básicamente aplicación de lo que hemos visto, eso me parece super porque así afianzamos nuestros conocimientos y también nos exige complementar otros.
El proyecto de análisis de glucosa está interesante, más complejo y aplican mucho de lo aprendido excelente aporte. gracias
Acá les dejo un proyexto bastante básico que hice con los conocimientos del curso, pero creo que les puede servir <https://github.com/anthonyariasr/python_marvel_graph>
les Invito a revisar el codigo que he escrito para hacer revision y/o comparaciones con alguna idea similar el codigo utilizado es el siguiente: import csv import matplotlib.pyplot as plt def read\_csv(path): with open(path, "r") as csvfile: reader = csv.reader(csvfile, delimiter=",") header = next(reader) data = \[] for row in reader: iterable = zip(header, row) country\_dict = {key: value for key, value in iterable} data.append(country\_dict) return data def filter\_data\_by\_continent(data, continent): return \[country for country in data if country\['Continent'] == continent] def extract\_population\_by\_year(countries, years): population\_by\_year = {year: 0 for year in years} for year in years: population\_by\_year\[year] = sum(int(country\[year]) for country in countries) return population\_by\_year def plot\_population(south\_america\_pop, north\_america\_pop, years): index = range(len(years)) plt.figure(figsize=(12, 6)) plt.bar(index, south\_america\_pop, width=0.4, alpha=0.6, label='South America') plt.bar(index, north\_america\_pop, width=0.4, alpha=0.6, label='North America', bottom=south\_america\_pop) plt.xlabel('Year') plt.ylabel('Population') plt.title('Population of South America and North America Over the Years') plt.xticks(index, years, rotation=45) plt.legend() plt.tight\_layout() plt.show() if \_\_name\_\_ == "\_\_main\_\_": data = read\_csv("./app/data.csv") years = \['1970 Population', '1980 Population', '1990 Population', '2000 Population', '2010 Population', '2015 Population', '2020 Population', '2022 Population'] south\_america = filter\_data\_by\_continent(data, 'South America') north\_america = filter\_data\_by\_continent(data, 'North America') south\_america\_population = extract\_population\_by\_year(south\_america, years) north\_america\_population = extract\_population\_by\_year(north\_america, years) south\_america\_pop\_values = \[south\_america\_population\[year] for year in years] north\_america\_pop\_values = \[north\_america\_population\[year] for year in years] plot\_population(south\_america\_pop\_values, north\_america\_pop\_values, years) y con eso obtuve : ![](https://static.platzi.com/media/user_upload/image-e4e9071b-ffd2-44ec-9734-498651e73255.jpg)![](https://static.platzi.com/media/user_upload/image-265f50bd-b702-478e-a5e1-536bbf935645.jpg)![](https://static.platzi.com/media/user_upload/image-e704308b-47d8-4184-bcbb-33ce6a419f39.jpg)

PROYECTO “menú selector de filas y columnas para cualquier archivo”

import csv


def leer(path):
  with open(path, "r") as archivo_csv:
    texto = csv.reader(archivo_csv, delimiter = ",")
    cabecera_de_titulos = next(texto)
    lista_de_numeros = ["NUMEROS"] #7
    lista_de_titulos = ["TITULOS"] #7
    numero = 0
    ################# CABECERA TITULO
    for fila in  (cabecera_de_titulos):
      numero += 1
      lista_de_numeros.append(numero)
      lista_de_titulos.append(fila.split(" ")[0].capitalize())   
    espacio_de_numeros = (max(len(str(numeros)) for numeros in lista_de_numeros)) # 7
    espacio_de_titulos = (max(len(titulos) for titulos in lista_de_titulos)) # 9
    print("ruta ",path)
    ################# CABECERA FILA
    seleccion = True
    mensaje = "Número o Texto "
    while seleccion:
      print(" ","=" * (4 +( espacio_de_numeros + espacio_de_titulos)))# ARRIBA  
      for fila in range(len(lista_de_titulos)):
        print(f"  |{str(lista_de_numeros[fila]).center(espacio_de_numeros)}|{str(lista_de_titulos[fila]).center(espacio_de_titulos + 2)}|")
      print(" ","=" * (4 +( espacio_de_numeros + espacio_de_titulos)))# ABAJOt()
      ################# SELECCION  
      cabecera = " "
      opcion = input(mensaje,) 
      if opcion:
        try:
          if opcion.capitalize() in lista_de_titulos:  
            opcion = lista_de_titulos.index(opcion.capitalize())
            cabecera = (lista_de_titulos[opcion]).upper()
            break
          if int(opcion) in lista_de_numeros: 
            cabecera = (lista_de_titulos[int(opcion)]).upper()
            break
        except ValueError:
          print("No valido ")
   ################ CABECERA COLUM         
  with open(path, "r") as archivo_csv:
    texto = csv.reader(archivo_csv, delimiter = ",")
    lista_de_filas = lista_de_columnas = []  
    for lista_de_filas in texto: 
      lista_de_columnas.append(lista_de_filas[int(opcion)-1])
    lista_de_columnas.pop(0)
    lista_de_columnas.insert(0,cabecera) 
    espacio_de_columnas = (max(len(columna) for columna in lista_de_columnas))# 9
      
    print(" ","=" * (4 +(espacio_de_columnas)))# ARRIBA
    for numero_de_columnas in lista_de_columnas:
      print(f"  |{numero_de_columnas.center(espacio_de_columnas + 2)}|")
    print(" ","=" * (4 +(espacio_de_columnas)))# ABAJOt()


leer("dat/datos.csv")
Mi proyecto de práctica: <https://github.com/mardelmariam/Data_analysis_practice>