Powered by AppSignal & Oban Pro

Habitación 0: Inicio

oaks_lab/solutions/01.livemd

Habitación 0: Inicio

Mix.install([
  {:explorer, "~> 0.11.1"},
  {:kino, "~> 0.19.0"},
  {:kino_explorer, "~> 0.1.25"},
  {:helpers, path: Path.expand("../helpers", __DIR__)}
])

defmodule Room do
  require Explorer.DataFrame, as: DF

  def verify(df) do
    if DF.n_columns(df) >= 10 do
      Helpers.Messages.correct("02.livemd", "Has restaurado el sistema del laboratorio.")
    else
      Helpers.Messages.error("Revisa bien las instrucciones...\n¿Estás seguro que cargaste los datos correctamente?")
    end
    |> Kino.Markdown.new()
  end
end

Contexto

Despiertas dentro de un laboratorio muy conocido…

¡Es el Laboratorio del Profesor Oak!

Sin embargo, algo no anda bien… Las puertas están bloqueadas y el sistema de datos está caído.

Un mensaje aparece en la pantalla principal:

> Para restaurar el sistema y poder avanzar, debes cargar correctamente los datos de Pokémon y revisar los primeros registros.

¿Cómo se cargan datos en Elixir?

En Ciencia de Datos usamos Explorer para trabajar con archivos y tablas.

Pasos típicos:

  1. Importar la biblioteca:
require Explorer.DataFrame, as: DF
  1. Leer un archivo .csv:
"pokemon.csv"
|> Kino.FS.file_path()
|> DF.from_csv!()
  1. Ver las primeras filas:
Kino.DataTable.new()

Desafío de la Habitación

Completa las siguientes variables:

  • file: con la dirección del archivo de datos.
  • df: con el resultado de leer los datos usando DF.from_csv!().

Luego muestra las primeras filas usando Kino.DataTable.new().

require Explorer.DataFrame, as: DF

# Se referencia el archivo en files original
# Por lo que no se usa Kino.FS.file_path/1
file = Path.expand("../files/pokemon.csv", __DIR__)

df = file
  # |> Kino.FS.file_path()
  |> DF.from_csv!()

Kino.DataTable.new(df)

Verificar tu respuesta

Room.verify(df)