A standard way to write it would be:
transform!(gdf, :col1 => function1 => :newcol1, :col2 => function2 => :newcol2)
and this should be efficient.
Of course this assumes that your data frame is large enough. For very small data frames (as in your example) compilation and bookkeeping will be much more expensive than computations themselves.