数据表操作
DataFrame Operations 组件用于对 DataFrame(表格)中的行与列执行操作,包括 schema 调整、记录修改、排序和过滤。
所有操作选项请参阅DataFrame Operations 参数。
执行完成后,组件会输出一个新的 DataFrame,其中包含修改后的结果。
在流程中使用 DataFrame Operations
以下步骤演示如何在流程中配置 DataFrame Operations。
你可以跟着示例做,也可以在自己的流程里使用;唯一要求是上游组件必须能产出 DataFrame,以便传给 DataFrame Operations。
-
创建一个新流程,或使用已有流程。
示例:API 响应提取流程
下图示例流程使用五个组件,先从 API 响应中提取
Data,再把它转换成DataFrame,最后通过 DataFrame Operations 对表格数据做进一步处理。 第六个组件 Chat Output 在这个示例中是可选的,它只是为了方便你在 Playground 中查看结果,而不是去检查组件日志。
如果你想用这个示例来测试 DataFrame Operations,可以这样做:
-
创建一个包含以下组件的流程:
- API Request
- Language Model
- Smart Transform
- Type Convert
-
配置 Smart Transform 组件 以及它依赖的组件:
- API Request:配置 API Request 组件 从某个接口读取 JSON 数据,然后把 API Response 输出连接到 Smart Transform 的 Data 输入。
- Language Model:选择你要使用的提供商与模型,并填写有效 API Key。将输出切换为 Language Model,然后把
LanguageModel输出连接到 Smart Transform 的 Language Model 输入。 - Smart Transform:在 Instructions 中写自然语言指令,告诉组件如何从 API 响应中提取数据。具体内容取决于你的响应结构与目标。例如,如果响应里有一个很大的
result字段,你可以写explode the result field out into a Data object。
-
将 Smart Transform 的
Data输出转换为DataFrame:- 把 Filtered Data 输出连接到 Type Convert 的 Data 输入。
- 将 Type Convert 的 Output Type 设为 DataFrame。
完成后,流程就准备好接入 DataFrame Operations 组件了。
-
-
向流程中添加 DataFrame Operations,然后把其他组件产生的
DataFrame输出连接到它的 DataFrame 输入。DataFrame Operations 的所有操作都要求至少接收一个来自其他组件的
DataFrame输入。 如果某个组件不能直接产出DataFrame,你可以先通过 Type Convert 组件 做转换。 你也可以直接改用更适合原始数据类型的组件,例如 Parser 组件 或 Data Operations 组件。如果你正在跟随上面的示例,请把 Type Convert 的 DataFrame Output 连接到这里的 DataFrame 输入。
-
在 Operations 字段中选择要对输入
DataFrame执行的操作。 例如,Filter 会根据指定列和值过滤行。提示每次只能选择一个操作。 如果你要对同一份数据执行多个操作,可以串联多个 DataFrame Operations 组件逐步处理。 如果是更复杂的多步操作,例如剧烈的 schema 变化、透视或高级变换,也可以考虑使用 LLM 驱动的组件,例如 Structured Output 组件 或 Smart Transform 组件,把它们作为替代方案,或在进入 DataFrame Operations 前先做准备处理。
如果你是在跟随示例流程,可以任选一个你想应用到 Smart Transform 提取结果上的操作。 如果你想查看传入的
DataFrame内容,可先在 Type Convert 上点击 Run component,再点 Inspect output。 如果DataFrame结构异常,请继续检查上游组件输出,确定错误发生在哪一步,并据此调整流程配置。 例如,如果 Smart Transform 没有抽出你预期的字段,就需要调整指令,或确认这些字段确实存在于 API Response 中。 -
配置该操作对应的参数。 具体参数取决于你选中的操作。 例如,如果你选择 Filter,就需要填写 Column Name、Filter Value 和 Filter Operator 来定义过滤条件。 更多说明请参阅DataFrame Operations 参数。
-
测试流程时,点击 DataFrame Operations 上的 Run component,然后点击 Inspect output 查看新生成的
DataFrame。如果你希望在 Playground 中查看结果,可以把 DataFrame Operations 的输出连接到 Chat Output,重新运行后再打开 Playground。
更多示例请参阅条件循环。
DataFrame Operations 参数
大多数 DataFrame Operations 参数都是条件型参数,因为它们只在特定操作下出现。
固定存在的只有两个参数:DataFrame(df)和 Operation(operation)。
前者是输入的 DataFrame,后者是要对它执行的操作。
当你选择某个操作后,相关参数才会显示在 DataFrame Operations 组件上。
- Add Column
- Drop Column
- Filter
- Head
- Rename Column
- Replace Value
- Select Columns
- Sort
- Tail
- Drop Duplicates
Add Column 用于为 DataFrame 新增一列,并为该列设置一个固定值。
对应参数为 New Column Name(new_column_name)和 New Column Value(new_column_value)。
Drop Column 用于删除 DataFrame 中某一列,目标列由 Column Name(column_name)指定。
Filter 用于按照指定条件筛选 DataFrame。
输出结果是一个仅保留命中过滤条件行的 DataFrame。
需要提供以下参数:
- Column Name(
column_name):要用于过滤的列名 - Filter Value(
filter_value):过滤目标值 - Filter Operator(
filter_operator):过滤时使用的操作符,可选equals(默认)、not equals、contains、not contains、starts with、ends with、greater than或less than
Head 用于取出 DataFrame 的前 n 行 ,其中 n 由 Number of Rows(num_rows)指定,默认值为 5。
输出结果是仅包含这些行的 DataFrame。
Rename Column 用于重命名 DataFrame 中已存在的列。
对应参数为当前列名 Column Name(column_name)和新列名 New Column Name(new_column_name)。
Replace Value 用于替换 DataFrame 某一列中的值。
它会把目标值替换为一个新值;凡是单元格内容等于目标值的行,都会在新的 DataFrame 中被替换。
需要提供以下参数:
- Column Name(
column_name):要修改的列名 - Value to Replace(
replace_value):要被替换的原值 - Replacement Value(
replacement_value):用于替换的新值
Select Columns 用于从 DataFrame 中选取一个或多个指定列。
在 Columns to Select(columns_to_select)中填写列名列表。
在可视化编辑器里,可点击 Add More 增加多个字段,并在每个字段中填写一个列名。
输出结果是只包含这些列的 DataFrame。
Sort 用于按照某一列对 DataFrame 进行升序或降序排序。
需要提供以下参数:
- Column Name(
column_name):要排序的列名 - Sort Ascending(
ascending):是否升序排序。启用(true)表示升序,关闭(false)表示降序。默认:启用(true)
Tail 用于取出 DataFrame 的后 n 行,其中 n 由 Number of Rows(num_rows)指定,默认值为 5。
输出结果是仅包含这些行的 DataFrame。
Drop Duplicates 用于根据某一列中的重复值删除重复行。
唯一参数是 Column Name(column_name)。
流程运行时,凡是该列中值重复的行都会被移除。
输出结果仍然保留原始 DataFrame 的全部列,但只包含该列值不重复的那些行。