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。对于一个从 mn 工作者的自动扩展工作者池,指定 concurrency=(m, n)

  • ray_remote_args – 从ray请求的额外资源需求(例如,num_gpus=1 用于为map任务请求GPU)。