Introducción

1

Curso Intermedio de Python: Manejo de Errores y Conceptos Avanzados

Conjuntos

2

Conjuntos en Python: Propiedades y Uso Práctico

3

Manipulación de Conjuntos: Agregar, Remover y Actualizar Elementos

4

Operaciones Fundamentales con Conjuntos en Python

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension en Python: Sintaxis y Ejemplos Prácticos

7

Comprensión de Diccionarios en Python: Ejemplos y Aplicaciones

8

Dictionary Comprehension con Condicionales en Python

9

Playgrounds: Crea una lista usando List Comprehension

10

Comparación de Listas, Tuplas y Conjuntos en Python

Funciones

11

Funciones en Programación: Creación y Uso en Python

12

Funciones en Python: Retorno de Valores y Reutilización de Código

13

Funciones en Python: Retorno múltiple y valores por defecto

14

Entendiendo el Scope en Python: Variables y Funciones

15

Refactorización de Juegos en Python: Uso de Funciones

16

Playgrounds: Tienda de Tecnología

17

Funciones Lambda en Python: Sintaxis y Aplicaciones Prácticas

18

Funciones de Orden Superior en Python: Concepto y Ejemplos Prácticos

19

Uso de la función map en Python para transformar listas

20

Transformaciones con Map en Diccionarios Complexos

21

Manejo de referencias en memoria con diccionarios y map en Python

22

Playgrounds: Multiplica todos los elementos por dos

23

Filtrado de listas con Filter en Python

24

Playgrounds: Retorna solo palabras de 4 letras y más

25

Uso de Reduce en Python para Manipular Listas

Módulos

26

Módulos en Python: Uso y Ejemplos Prácticos

27

Creación y Uso de Módulos en Python

28

Manejo de la dualidad de módulos en Python: script y módulo

29

Paquetes en Python: Creación y Uso de Módulos

30

Playgrounds: Calcular la suma de todas las compras

Manipulación de archivos y errores

31

Control manual de iteradores en Python con next

32

Errores y Excepciones en Python: Identificación y Manejo Básico

33

Manejo de Errores en Python: Uso de Try y Except

34

Playgrounds: Captura la excepción: ZeroDivisionError

35

Lectura y manejo de archivos de texto en Python

36

Lectura y escritura de archivos de texto en Python

37

Procesamiento de Archivos CSV en Python para Análisis de Datos

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gráficas en Python

39

Gráficas con Matplotlib: Bar Chart y Pie Chart en Python

40

Proyecto Final: Análisis Poblacional con Python y Gráficas

41

Gráficos de Torta con Datos Filtrados en Python

Próximos pasos

42

Revisión y Mejora de Proyectos Estudiantiles

43

Reconoce tu proceso y certifícate

44

Manejo Avanzado de Estructuras de Datos en Python

Revisión y Mejora de Proyectos Estudiantiles

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 20

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 😦

# 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()

Acabo de terminar mi primer proyecto por fin, por si alguien le quiere echar un vistazo, siento que me esforcé *jeje* * *Menta Health Study* <https://github.com/daniospina9/mental-health-study>
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…!

El primer proyecto no enruta bien sale un ejercicio de "hola mundo"
Asi quedo mi funcion en utils ```js def getWorldPopulationPercentage(data): countries = list(map(lambda item: item['Country/Territory'], data)) percentages = list(map(lambda item: float(item['World Population Percentage']), data)) return countries, percentages ```Asi quedo mi codigo en main ```js continent = input("Que continente quieres revisar? ") filtered = list(filter(lambda x: x['Continent'] == continent, data)) countries, percentages = utils.getWorldPopulationPercentage(filtered) charts.generate_bar_char(countries, percentages) ```
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>