概要
wsl(wsl2じゃない)で、elixirやってみた。
練習問題やってみた。
練習問題
Livebookで、データフレームを使え。
新幹線の開業の日付で駅を分けてテーブルを作れ。
参考にしたページ
写真
サンプルコード
alias Explorer.DataFrame
alias Explorer.Series
import Explorer.DataFrame
df = Explorer.DataFrame.arrange(df, col("開業"))
df = Explorer.DataFrame.group_by(df, "開業")
df = Explorer.DataFrame.distinct(df, ["駅名", "開業"])
defmodule Oz do
use Agent
def start_link() do
Agent.start_link(fn ->
""
end, name: __MODULE__)
end
def get() do
Agent.get(__MODULE__, fn v ->
v
end)
end
def add(o) do
Agent.update(__MODULE__, fn v ->
v <> " " <> o
end)
end
def put(o) do
Agent.update(__MODULE__, fn v ->
o
end)
end
end
Oz.start_link
map = Explorer.DataFrame.to_series(df)
st = Explorer.Series.to_list(map["開業"])
st = Enum.uniq(st)
eki = for i <- st do
Oz.put(i)
m = Explorer.DataFrame.filter(df, 開業 == Oz.get)
Explorer.Series.to_list(m["駅名"])
end
|> Enum.map(fn x ->
x
|> Enum.map(fn y ->
y
end)
end)
eki = eki
|> Enum.map(fn x ->
Oz.put("")
Enum.map(x, fn y ->
Oz.add(y)
end)
Oz.get
end)
Kino.DataTable.new(開業: st, 駅名: eki)
以上。