def wrapper(*args): from cudf import DataFrame # This probably creates copies but is fine for now to_udf_table = DataFrame( {idx: arg for idx, arg in zip(range(len(args)), args)}) # Frame._apply return to_udf_table._apply(func)