ray.data.Dataset.add_column#
- Dataset.add_column(col: str, fn: Callable[[pandas.DataFrame], pandas.Series], *, compute: str | None = None, concurrency: int | Tuple[int, int] | None = None, **ray_remote_args) Dataset [源代码]#
将给定的列添加到数据集中。
必须指定一个函数,该函数根据 pandas 格式的批次生成新列的值。
示例
>>> import ray >>> ds = ray.data.range(100) >>> ds.schema() Column Type ------ ---- id int64
添加一个新列,其值等于
id * 2
。>>> ds.add_column("new_id", lambda df: df["id"] * 2).schema() Column Type ------ ---- id int64 new_id int64
用零覆盖现有值。
>>> ds.add_column("id", lambda df: 0).take(3) [{'id': 0}, {'id': 0}, {'id': 0}]
时间复杂度:O(数据集大小 / 并行度)
- 参数:
col – 要添加的列名。如果该名称已存在,则该列将被覆盖。
fn – Map 函数生成给定 pandas 格式批次记录的列值。
compute – 此参数已弃用。请使用
concurrency
参数。concurrency – 要同时使用的 Ray 工作者的数量。对于一个固定大小的工作者池,大小为
n
,指定concurrency=n
。对于一个从m
到n
工作者的自动扩展工作者池,指定concurrency=(m, n)
。ray_remote_args – 从ray请求的额外资源需求(例如,num_gpus=1 用于为map任务请求GPU)。