queryverse / Query.jl

Query almost anything in julia
Other
395 stars 50 forks source link

Using @mutate with a Dictionary or array loses the column types #324

Open pstaabp opened 3 years ago

pstaabp commented 3 years ago

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

d=["xx","yy","zz"]

the above code loses the column types. In addition, if

d2=[7,8,9]

then

df |> @mutate(z=d2[_.x]) |> DataFrame

also loses the column types.

danvinci commented 3 years ago

Same here, seems the same issue as #313