<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def transmute(*args, **kwargs):
 """ Similar to `select` but allows mutation in column definitions. In : (diamonds >> head(3) >> transmute(new_price=X.price * 2, x_plus_y=X.x + X.y)) Out: new_price x_plus_y 0 652 7.93 1 652 7.73 2 654 8.12 """

  mutate_dateframe_fn = mutate(*args, **dict(kwargs))
  column_names_args = [str(arg) for arg in args]
  column_names_kwargs = [name for name, _
                         in _dict_to_possibly_ordered_tuples(kwargs)]
  column_names = column_names_args + column_names_kwargs
  return lambda df: mutate_dateframe_fn(df)[column_names]