GroupColumns¶
组合来自 StepInput
列表的列。
GroupColumns
是一个 Step
,它实现了 process
方法,该方法调用 group_dicts
函数来处理和组合 StepInput
列表。此外,GroupColumns
提供了两个属性 columns
和 output_columns
,用于指定要分组的列和输出列,这将分别覆盖属性 inputs
和 outputs
的默认值。
属性¶
-
columns: 包含要分组的列名称的字符串列表。
-
output_columns: 可选的字符串列表,包含输出列的名称。
输入 & 输出列¶
graph TD
subgraph Dataset
subgraph Columns
ICOL0[dynamic]
end
subgraph New columns
OCOL0[dynamic]
end
end
subgraph GroupColumns
StepInput[Input Columns: dynamic]
StepOutput[Output Columns: dynamic]
end
ICOL0 --> StepInput
StepOutput --> OCOL0
StepInput --> StepOutput
输入¶
- dynamic (由
columns
属性确定): 要分组的列。
输出¶
- dynamic (由
columns
和output_columns
属性确定): 已分组的列。
示例¶
对数据集的列进行分组¶
from distilabel.steps import GroupColumns
group_columns = GroupColumns(
name="group_columns",
columns=["generation", "model_name"],
)
group_columns.load()
result = next(
group_columns.process(
[{"generation": "AI generated text"}, {"model_name": "my_model"}],
[{"generation": "Other generated text", "model_name": "my_model"}]
)
)
# >>> result
# [{'merged_generation': ['AI generated text', 'Other generated text'], 'merged_model_name': ['my_model']}]
指定输出列的名称¶
from distilabel.steps import GroupColumns
group_columns = GroupColumns(
name="group_columns",
columns=["generation", "model_name"],
output_columns=["generations", "generation_models"]
)
group_columns.load()
result = next(
group_columns.process(
[{"generation": "AI generated text"}, {"model_name": "my_model"}],
[{"generation": "Other generated text", "model_name": "my_model"}]
)
)
# >>> result
#[{'generations': ['AI generated text', 'Other generated text'], 'generation_models': ['my_model']}]