If one defines:
d=Dict(1=>"xx",2=>"yy",3=>"zz")
df = DataFrame(str=["a","b","c"],x=[1,2,3])
and then
df |> @mutate(y=d[_.x]) |> DataFrame
results in
Row │ str x y
│ Any Any Any
─────┼───────────────
1 │ a 1 xx
2 │ b 2 yy
3 │ c 3 zz
losing the types of all of the columns. And doing a little digging, this doesn't seem to be an issue with the dictionary. If instead
the above code loses the column types. In addition, if
then
df |> @mutate(z=d2[_.x]) |> DataFrame
also loses the column types.