Saltar al contenido
Volver al inicio 100 Días de Código en Python — Día 99: Proyecto de portafolio — Análisis de las misiones espaciales (1957–2020)

100 Días de Código en Python — Día 99: Proyecto de portafolio — Análisis de las misiones espaciales (1957–2020)

Nivel: Grado décimo Área: Tecnología e Informática Modalidad: Tutorial práctico Fuente: Curso "100 Days of Code: The Complete Python Pro Bootcamp" (Angela Yu, App Brewery). Contenido del Día 99, proyecto de portafolio profesional (categoría Data Science).

Este tutorial adapta pedagógicamente el Día 99. Las secciones 📝 Contenido original del curso provienen de tres archivos: dia99-tarea18.md (enunciado y reflexión, en inglés; aquí traducido), el cuaderno Space_Missions_Analysis_(start).ipynb (introducción, instalación de paquetes, carga de datos, preguntas de exploración y 21 preguntas de análisis, con las celdas de código vacías) y el conjunto de datos mission_launches.csv. El curso no ofrece solución, y este tutorial no la entrega: ofrece la exploración y limpieza inicial verificadas, pistas por pregunta, valores de control para que compruebes tus resultados, retos 🟢🟡🟠🔴, un proyecto extra y la etapa 18 de Mi Portafolio Profesional. Todo lo que no está en esos archivos es creación de esta adaptación.

Nota sobre las verificaciones: el 28 de septiembre de 2026, con Python 3.14, pandas 3.0.6 e iso3166 3.0.0, se ejecutó la limpieza de las secciones 3 y 4 sobre mission_launches.csv: 4324 filas y 9 columnas; 2 columnas de índice sobrantes; Price es texto (con comas de miles como "5,000.0") y solo 964 filas tienen precio; las fechas van del 4 de octubre de 1957 al 7 de agosto de 2020 (126 sin hora); y la conversión de países con iso3166 falla para 4 nombres que la lista del cuaderno no menciona (Iran, North Korea, South Korea y Pacific Ocean). Los valores de control de la sección 5 se calcularon con esa limpieza.


Tabla de contenidos

  1. La tarea: 60 años de carrera espacial en datos
  2. Analizar antes de graficar: el ciclo de un análisis
  3. 📖 Exploración preliminar y limpieza
  4. 📖 Extraer el país y convertirlo a código ISO
  5. 📝 Las preguntas del cuaderno, con pistas y valores de control
  6. 📖 De gráfico a conclusión (sin exagerar)
  7. 🚀 Proyecto del día: construcción por etapas
  8. 🌟 Proyecto extra: Colombia y Latinoamérica en el espacio
  9. 🏗️ Mi Portafolio Profesional — Etapa 18
  10. 🧩 Comprueba lo aprendido
  11. 🤖 Programar con apoyo de IA
  12. 🛠️ Observaciones sobre el material original
  13. 📋 Matriz de trazabilidad
  14. 📦 Evidencias de aprendizaje del Día 99

1. La tarea: 60 años de carrera espacial en datos

(Fuente: dia99-tarea18.md y la introducción de Space_Missions_Analysis_(start).ipynb)

📝 Contenido original del curso

Aprendiste todos los aspectos centrales de la exploración, limpieza y visualización de datos. Descarga, descomprime y abre el cuaderno incluido en la tarea.

Encontrarás un conjunto de datos muy rico, obtenido de nextspaceflight.com, con todas las misiones espaciales desde el inicio de la carrera espacial entre Estados Unidos y la Unión Soviética en 1957. Tiene datos del estado de la misión (éxito/fracaso), el costo, el número de lanzamientos por país y mucho más. Por ejemplo:

  • ¿Quién lanzó más misiones en un año dado?
  • ¿Cómo ha variado el costo de una misión con el tiempo?
  • ¿Qué meses son los más populares para lanzar?
  • ¿Las misiones se han vuelto más seguras o la probabilidad de fracaso sigue igual?

Seguro descubrirás muchas más preguntas. Úsalo para practicar los tipos de gráficos que aprendiste, desde mapas coropléticos hasta gráficos de rayos de sol (sunburst) y barras segmentadas, y trata de convertir los datos en conocimiento (insight).

El cuaderno empieza instalando iso3166 (códigos de países) y actualizando plotly (en Google Colab), importa numpy, pandas, plotly express, matplotlib, seaborn, iso3166.countries y datetime, configura pd.options.display.float_format y carga mission_launches.csv.

Pregunta de la tarea — Momento de reflexión: cómo abordaste el proyecto; qué fue difícil y qué fácil; cómo mejorarías; tu mayor aprendizaje; qué harías distinto.

Prerequisitos: pandas: exploración, limpieza, groupby, fechas y remuestreo (Días 72, 74 y 75); matplotlib (Días 73 y 75); plotly, incluidos sunburst y coropléticos (Días 76 y 79); seaborn (Día 78); el análisis de los Premios Nobel (Día 79), muy parecido a este.


2. Analizar antes de graficar: el ciclo de un análisis

(Sección creada para esta adaptación.)

Texto
Pregunta ──► Datos necesarios ──► Limpieza ──► Cálculo (tabla) ──► Gráfico ──► Conclusión ──► Nueva pregunta

Para cada pregunta del cuaderno, antes de escribir código, responde:

Paso Ejemplo: "¿Qué meses son los más populares para lanzar?"
¿Qué columnas necesito? Date
¿Qué limpieza requiere? Convertir a fecha y extraer el mes
¿Qué cálculo? Contar lanzamientos por mes
¿Qué gráfico comunica mejor? Barras ordenadas por mes
¿Qué conclusión puedo sacar y cuál no? "Diciembre tiene más lanzamientos" sí; "porque hace mejor clima" no, sin más evidencia

💡 La tabla (el resultado del cálculo) es más importante que el gráfico: si la tabla está mal, el gráfico más bonito también lo está. Imprime siempre la tabla antes de graficar.


3. 📖 Exploración preliminar y limpieza

(Desarrolla las secciones "Preliminary Data Exploration", "Data Cleaning" y "Descriptive Statistics" del cuaderno. Verificado.)

📝 Preguntas originales del cuaderno

¿Qué forma tiene df_data? ¿Cuántas filas y columnas? ¿Cuáles son los nombres de las columnas? ¿Hay valores NaN o duplicados? Considera eliminar las columnas con datos basura. Estadísticas descriptivas.

Lo que encontrarás (verificado)

Hallazgo Detalle Qué hacer
Forma 4324 filas × 9 columnas —
Columnas basura Unnamed: 0.1 y Unnamed: 0 son índices guardados por error Eliminarlas
Price es texto Valores como "50.0" y "5,000.0" (con coma de miles) Quitar comas y convertir a número
Precios faltantes Solo 964 de 4324 misiones tienen precio No rellenar con 0: sería inventar que costaron 0
Fechas en dos formatos "Fri Aug 07, 2020 05:12 UTC" y, en 126 filas, sin hora: "Thu Aug 29, 2019" Convertir con un formato flexible
Duplicados 0 filas duplicadas —

🔎 Ejemplo explicado (limpieza base)

Python
df = pd.read_csv("mission_launches.csv")
df = df.drop(columns=["Unnamed: 0.1", "Unnamed: 0"])
df["Price"] = pd.to_numeric(df["Price"].str.replace(",", ""), errors="coerce")
df["Fecha"] = pd.to_datetime(df["Date"], format="mixed", utc=True)
  • str.replace(",", "") quita la coma de miles: "5,000.0" → "5000.0".
  • pd.to_numeric(..., errors="coerce"): lo que no se pueda convertir queda como NaN en lugar de detener el programa.
  • format="mixed" le dice a pandas que las fechas pueden venir en formatos distintos (verificado: todas se convierten). utc=True las marca como hora UTC (la zona que indica el texto).
  • Alternativa más estricta: convertir primero con el formato exacto "%a %b %d, %Y %H:%M UTC" y, a las que fallen, aplicar "%a %b %d, %Y". Más código, pero sabes exactamente qué pasa con cada fila. Compara ambas.

⚠️ Errores frecuentes

Error Qué ocurre Solución
df["Price"].astype(float) ValueError: could not convert string to float: '5,000.0' Quitar las comas antes
df["Price"].fillna(0) El precio promedio baja artificialmente Trabaja solo con las filas que tienen precio (dropna) y dilo en tus conclusiones
pd.to_datetime(df["Date"]) sin formato Avisos o errores por los dos formatos format="mixed" o conversión en dos pasos
Olvidar reasignar df.drop(columns=...) sin df = no cambia nada Reasigna el resultado

4. 📖 Extraer el país y convertirlo a código ISO

(Desarrolla la sección "Use a Choropleth Map…" del cuaderno. Verificado.)

📝 Instrucciones originales del cuaderno

Crea un mapa coroplético (documentación de plotly) y experimenta con sus escalas de color (a la instructora le gusta matter). Tendrás que extraer una característica country y cambiar los nombres de países que ya no existen. Se necesita el código de país de 3 letras. Correcciones:

  • Russia → Russian Federation
  • New Mexico → USA
  • Yellow Sea → China
  • Shahrud Missile Test Site → Iran
  • Pacific Missile Range Facility → USA
  • Barents Sea → Russian Federation
  • Gran Canaria → USA

Puedes usar el paquete iso3166 para convertir los nombres al formato Alpha3.

🔎 Cómo hacerlo

El país es el último elemento de Location: "LC-39A, Kennedy Space Center, Florida, USA" → "USA".

Python
df["Pais"] = df["Location"].str.split(", ").str[-1]
df["Pais"] = df["Pais"].replace(CORRECCIONES)     # diccionario con la lista del cuaderno

Luego, countries.get(nombre).alpha3 da el código. Pero (verificado) con la lista del cuaderno aplicada, iso3166 lanza KeyError con 4 nombres:

Nombre en los datos Por qué falla Código correcto
Iran (incluye el Shahrud corregido) La norma lo llama "Iran, Islamic Republic of" IRN
North Korea "Korea, Democratic People's Republic of" PRK
South Korea "Korea, Republic of" KOR
Pacific Ocean No es un país: son lanzamientos desde una plataforma marina (Sea Launch, un consorcio internacional) Decisión tuya: excluir del mapa o asignar un país, y justificarlo

Tu turno: amplía el diccionario de correcciones y escribe una función que convierta el nombre a código y, si no puede, informe qué nombre falló (en lugar de detener el programa).

🔍 Analiza una decisión del curso: el cuaderno asigna Gran Canaria a "USA" (eran lanzamientos de un cohete de una empresa estadounidense desde un avión), aunque geográficamente es España; y reparte la URSS entre Rusia y Kazajistán según el sitio actual de lanzamiento. ¿Estás de acuerdo? ¿Cambia tus conclusiones? Escríbelo.


5. 📝 Las preguntas del cuaderno, con pistas y valores de control

(Las preguntas son originales del cuaderno, traducidas; las pistas y los valores de control son de esta adaptación, calculados con la limpieza de las secciones 3 y 4.)

Los valores de control sirven para comprobar que tu limpieza va bien, no para copiarlos: tu trabajo es el gráfico y la conclusión.

# Pregunta del cuaderno Pista Valor de control
1 Número de lanzamientos por organización value_counts(); barras horizontales con las 20 primeras La primera es RVSN USSR con 1777
2 Cohetes activos frente a retirados Columna Rocket_Status 790 activos, 3534 retirados
3 Distribución del estado de las misiones Mission_Status 3879 éxitos, 339 fracasos, 102 parciales, 4 antes del lanzamiento
4 ¿Qué tan caros son los lanzamientos? Histograma (en millones de USD; ojo con los faltantes) dropna y px.histogram; considera la escala 964 precios; mediana 62
5 Mapa coroplético de lanzamientos por país Sección 4; px.choropleth(locations=..., color=...) Rusia (1398) y EE. UU. (1351) encabezan
6 Mapa coroplético de fracasos por país Filtrar antes de contar —
7 Sunburst de países, organizaciones y estado de la misión px.sunburst(path=[...], values=...) sobre una tabla agrupada —
8 Dinero total gastado por organización groupby("Organisation")["Price"].sum() NASA encabeza (≈ 76 280 millones, solo con los precios disponibles)
9 Dinero gastado por organización por lanzamiento Promedio en lugar de suma —
10 Lanzamientos por año df["Fecha"].dt.year El año con más lanzamientos es 1971 (119)
11 Lanzamientos mes a mes hasta el presente, con media móvil Remuestreo mensual y .rolling(...) (Día 75) —
12 Meses más y menos populares dt.month Diciembre el más alto (450), enero el más bajo (268)
13 Precio promedio de los lanzamientos a lo largo del tiempo Promedio por año con los precios disponibles —
14 Lanzamientos en el tiempo de las 10 organizaciones principales Filtrar las 10 y agrupar por año y organización —
15 Guerra Fría: EE. UU. frente a URSS (hasta 1991) Filtrar por fecha —
16 Gráfico circular de lanzamientos totales URSS vs. EE. UU. (incluye antiguas repúblicas como Kazajistán) Agrupa Rusia + Kazajistán —
17 Lanzamientos año a año de las dos superpotencias Línea o barras por año —
18 Fracasos año a año Filtrar Mission_Status != "Success" o solo "Failure" (decide y dilo) —
19 Porcentaje de fracasos en el tiempo Fracasos ÷ total por año En todo el periodo, el 10,29 % de las misiones no fue un éxito completo
20 País líder cada año (y ¿cambia si solo cuentas éxitos?) Para cada año, el país con más lanzamientos (idxmax) —
21 Organización con más lanzamientos cada año (¿quién dominó en los 70 y 80? ¿y en 2018–2020?) Igual que la anterior, por organización —

💡 Ojo con 2020: los datos terminan el 7 de agosto de 2020. Un gráfico por año mostrará una "caída" en 2020 que no es real: el año está incompleto. Señálalo en el gráfico o exclúyelo.


6. 📖 De gráfico a conclusión (sin exagerar)

(Sección creada para esta adaptación.)

"Convertir datos en conocimiento" significa escribir qué muestra el gráfico, qué no puede mostrar y por qué podría estar pasando (como hipótesis).

Tipo de afirmación Ejemplo ¿Válida?
Descripción "Entre 1957 y 1991 la URSS realizó más lanzamientos que EE. UU." ✅ si tu tabla lo muestra
Comparación con matiz "El porcentaje de fracasos es menor en las décadas recientes que en los primeros años" ✅ si calculaste porcentajes, no totales
Causa sin evidencia "Los fracasos bajaron porque los ingenieros son mejores" ❌ Es una hipótesis; necesitarías otros datos
Conclusión con datos incompletos "La NASA gastó 76 280 millones en total" ⚠️ Solo cuenta las misiones con precio (964 de 4324); dilo

Plantilla para cada gráfico de tu cuaderno:

  1. Qué muestra: una o dos frases con números.
  2. Limitaciones: datos faltantes, años incompletos, decisiones de limpieza.
  3. Hipótesis (opcional): una explicación posible, marcada como tal.

7. 🚀 Proyecto del día: construcción por etapas

(Desarrolla la tarea dia99-tarea18.md y el cuaderno. Las etapas son una propuesta de esta adaptación.)

Problema

Analizar el conjunto de datos de misiones espaciales y convertirlo en conocimiento.

Contexto

La clase de ciencias sociales estudia la Guerra Fría y la de física, el movimiento de proyectiles y satélites. Tu análisis será material para ambas.

Objetivo

El cuaderno completo, con cada pregunta respondida por una tabla, un gráfico y una conclusión según la plantilla de la sección 6.

Requisitos funcionales

  1. Exploración y limpieza documentadas (qué cambiaste y por qué).
  2. Las 21 preguntas de la sección 5 respondidas (o al menos 15, acordado con el docente).
  3. Al menos 2 preguntas propias con su análisis.
  4. Un resumen final de 5 hallazgos principales.

Restricciones técnicas

  • No rellenar precios faltantes con 0.
  • Tipos de gráfico variados: coroplético, sunburst, líneas, barras, histograma.
  • Todos los gráficos con título, ejes con nombre y unidades.

Planificación

  1. Leer el cuaderno completo. 2. Explorar (sección 3). 3. Limpiar. 4. Para cada pregunta: tabla → gráfico → conclusión. 5. Revisar los valores de control. 6. Preguntas propias. 7. Resumen. 8. Revisión por un compañero. 9. Corregir. 10. Publicar.

Construcción por etapas

  • Etapa 1 — Exploración y limpieza (sección 3), comprobando los valores de control 1 a 4.
  • Etapa 2 — Países y mapas (preguntas 5 a 7).
  • Etapa 3 — Dinero (8, 9 y 13), con la advertencia de los datos faltantes.
  • Etapa 4 — Tiempo (10 a 12), con media móvil y la advertencia de 2020.
  • Etapa 5 — Guerra Fría y competencia (14 a 21).
  • Etapa final — Preguntas propias y resumen.

Pruebas (comprobaciones del análisis)

Python
assert len(df) == 4324
assert "Unnamed: 0" not in df.columns              # columnas basura eliminadas
assert df["Price"].notna().sum() == 964
assert df["Fecha"].isna().sum() == 0
assert df["Fecha"].dt.year.value_counts().idxmax() == 1971

🧪 Prueba y depuración

Python
df["Price"] = df["Price"].fillna(0).astype(float)
promedio = df.groupby("Organisation")["Price"].mean()
df["Pais"] = df["Location"].str.split(",")[-1]

Encuentra tres problemas: rellenar con 0 y luego astype(float) falla con "5,000.0" (y, si funcionara, los ceros bajarían los promedios); str.split(",")[-1] toma la última fila, no el último elemento de cada texto (falta .str[-1]); y separar por "," sin el espacio deja un espacio al inicio del país (" USA").

⭐ Extensión del proyecto

  • 🟢 Reto 1 — Aplicación: gráfico de barras segmentadas (apiladas) del estado de las misiones por década.
  • 🟡 Reto 2 — Ampliación: usa la columna Detail ("Falcon 9 Block 5 | Starlink...") para extraer el cohete y analizar cuáles son los más usados y los más confiables.
  • 🟠 Reto 3 — Desafío: tasa de éxito de los primeros 10 lanzamientos de cada organización frente a los siguientes: ¿las organizaciones aprenden?
  • 🔴 Reto 4 — Pensamiento computacional: diseña un indicador de "confiabilidad" de un cohete que no premie injustamente a uno con 2 lanzamientos exitosos (100 %) frente a uno con 300 lanzamientos y 97 % de éxito. Justifica tu fórmula y aplícala.

8. 🌟 Proyecto extra: Colombia y Latinoamérica en el espacio

(Proyecto creado para esta adaptación; no existe en el curso original.)

Situación

El conjunto de datos solo registra lanzamientos, y ningún país latinoamericano aparece como sitio de lanzamiento salvo Brasil (con 3 intentos). Pero la región sí tiene satélites, lanzados desde otros países (por ejemplo, el nanosatélite colombiano Libertad 1, de 2007).

Requisitos

  1. Investiga en fuentes confiables (agencias espaciales, universidades) los satélites de 3 países latinoamericanos, incluido Colombia: nombre, año, propósito, cohete y país de lanzamiento.
  2. Crea tu propio CSV con esa información (con una columna de fuente por fila).
  3. Busca si alguno de esos lanzamientos está en mission_launches.csv (pista: busca el nombre del satélite en la columna Detail) y explica por qué algunos no aparecen.

Decisiones que debes tomar (y justificar)

  • ¿Qué haces si dos fuentes dan fechas distintas?
  • ¿Cómo presentas pocos datos sin que el gráfico engañe?

Casos de prueba

  • Cada fila de tu CSV tiene una fuente.
  • La búsqueda en Detail no distingue mayúsculas y minúsculas.

9. 🏗️ Mi Portafolio Profesional — Etapa 18

(Proyecto integrador creado para esta adaptación; etapas anteriores en los Días 82 a 98.)

Etapa 18 (hoy):

  1. Repositorio con el cuaderno completo ejecutado (con salidas visibles) y README.md con los 5 hallazgos principales y 2 gráficos destacados.
  2. Si publicas gráficos interactivos, exporta los de plotly a HTML (fig.write_html) y enlázalos desde tu sitio de portafolio (como en el reto 3 del Día 83).
  3. DIARIO.md del Día 99 y ficha en proyectos.json.

10. 🧩 Comprueba lo aprendido

Conceptuales

  1. ¿Por qué no se deben rellenar con 0 los precios faltantes?
  2. ¿Qué diferencia hay entre contar fracasos y calcular el porcentaje de fracasos por año?
  3. ¿Por qué la "caída" de 2020 no es real?
  4. ¿Qué es un mapa coroplético y qué necesita plotly para dibujarlo?

Análisis de código

Python
df["Location"].str.split(", ").str[-1]

¿Qué devuelve para "Site 9401 (SLS-2), Jiuquan Satellite Launch Center, China"?

Predicción

Con los datos limpios, ¿qué devuelve df["Price"].isna().mean() aproximadamente? (Pista: 964 de 4324 tienen precio.)

Depuración

"Mi mapa coroplético no muestra Irán ni las Coreas." ¿Qué paso de la sección 4 falta?

Modificación

Cambia el análisis de meses para calcular el porcentaje de lanzamientos de cada mes en lugar del total.

Creación

Escribe decada(fecha) que devuelva "1950s", "1960s", … y úsala para agrupar los lanzamientos por década.


11. 🤖 Programar con apoyo de IA

Ciclo de trabajo: formula el problema → inténtalo tú primero → consulta a la IA sobre un punto concreto → lee y entiende → prueba → compara con la documentación oficial → modifica → explica con tus palabras.

Actividad 1 — Comprobar con valores de control. Si pides ayuda a una IA con una limpieza, compara su resultado con los valores de control de la sección 5. Si no coinciden, busca dónde está la diferencia.

Actividad 2 — Interpretar, no solo graficar. Pega una tabla (no el gráfico) de fracasos por década y pide a una IA una interpretación. Clasifica cada frase de su respuesta según la tabla de la sección 6 (descripción, comparación, causa sin evidencia).

Actividad 3 — Datos históricos. Pregunta a una IA cuándo terminó la Guerra Fría y qué pasó con el cosmódromo de Baikonur. Contrasta con una enciclopedia confiable y usa esa información en la pregunta 16.

Declara el uso: sección "Uso de IA" en el README.md.


12. 🛠️ Observaciones sobre el material original

Archivo Observación Tratamiento
Space_Missions_Analysis_(start).ipynb La lista de correcciones de países no incluye Iran, North Korea, South Korea ni Pacific Ocean, que fallan en iso3166 (verificado) Sección 4
Space_Missions_Analysis_(start).ipynb Las celdas %pip install están pensadas para Colab En un computador, instala con pip en tu entorno virtual (Día 15)
mission_launches.csv Price como texto con comas; 2 formatos de fecha; datos hasta agosto de 2020 Secciones 3 y 5
mission_launches.csv Solo 22 % de las misiones tienen precio Advertencia en las preguntas de dinero y en la sección 6
dia99-tarea18.md La tarea pide descargar un ZIP; en esta carpeta ya están el cuaderno y el CSV Se trabaja con los archivos de la carpeta
Cuaderno Asigna Gran Canaria a EE. UU. Se presenta como decisión discutible (sección 4)

13. 📋 Matriz de trazabilidad

Contenido original Archivo de origen Concepto desarrollado Ejercicio original Reto adicional Proyecto relacionado
Dataset de nextspaceflight.com desde 1957 dia99-tarea18.md, mission_launches.csv Secciones 1 y 3 Análisis completo — Secciones 7 y 9
Preguntas ejemplo (quién lanzó más, costo, meses, seguridad) dia99-tarea18.md Sección 5 (preguntas 10, 12, 13, 19–21) Análisis completo Reto 3 Sección 7
Instalación, importaciones, carga Cuaderno Sección 1 — — —
Exploración preliminar, limpieza, estadísticas Cuaderno Sección 3 Preguntas de exploración — Etapa 1
Lanzamientos por organización; activos/retirados; estado de misiones; precios Cuaderno Sección 5 (1–4) Preguntas 1–4 Retos 1 y 2 Etapa 1
Mapas coropléticos (lanzamientos y fracasos) y correcciones de países Cuaderno Sección 4 y 5 (5–6) Preguntas 5–6 — Etapa 2
Sunburst; dinero total y por lanzamiento; precio en el tiempo Cuaderno Sección 5 (7–9, 13) Preguntas 7–9 y 13 Reto 4 Etapas 2 y 3
Lanzamientos por año, mes a mes con media móvil, meses populares Cuaderno Sección 5 (10–12) Preguntas 10–12 — Etapa 4
Top 10 organizaciones; Guerra Fría; fracasos y porcentaje; líderes por año Cuaderno Sección 5 (14–21) Preguntas 14–21 Reto 3 Etapa 5
Convertir datos en conocimiento dia99-tarea18.md Sección 6 — — Etapa final
Momento de reflexión dia99-tarea18.md Sección 7 Pregunta de reflexión — Sección 9
(No existe en el curso original) — Valores de control, conclusiones responsables — Colombia y Latinoamérica en el espacio Sección 8

14. 📦 Evidencias de aprendizaje del Día 99

  • El cuaderno ejecutado, con tablas, gráficos y conclusiones según la plantilla.
  • Las comprobaciones de la sección 7 superadas.
  • El registro de decisiones de limpieza (qué, por qué, cuántas filas afectó).
  • Las 2 preguntas propias y el resumen de 5 hallazgos.
  • DIARIO.md del Día 99 y ficha en el portafolio.
  • Cuaderno de errores: Price con comas, faltantes rellenados con 0, dos formatos de fecha, str.split sin .str[-1], nombres de países que iso3166 no reconoce, año 2020 incompleto, conclusiones causales sin evidencia.