--- title: DataFrame Operations slug: /dataframe-operations --- import Icon from "@site/src/components/icon"; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import PartialParams from '@site/docs/_partial-hidden-params.mdx'; import PartialCurlyBraces from '@site/docs/_partial-escape-curly-braces.mdx'; The **DataFrame Operations** component performs operations on [`DataFrame`](/data-types#dataframe) (table) rows and columns, including schema changes, record changes, sorting, and filtering. For all options, see [DataFrame Operations parameters](#dataframe-operations-parameters). The output is a new `DataFrame` containing the modified data after running the selected operation. ## Use the DataFrame Operations component in a flow The following steps explain how to configure a **DataFrame Operations** component in a flow. You can follow along with an example or use your own flow. The only requirement is that the preceding component must create `DataFrame` output that you can pass to the **DataFrame Operations** component. 1. Create a new flow or use an existing flow.
Example: API response extraction flow The following example flow uses five components to extract `Data` from an API response, transform it to a `DataFrame`, and then perform further processing on the tabular data using a **DataFrame Operations** component. The sixth component, **Chat Output**, is optional in this example. It only serves as a convenient way for you to view the final output in the **Playground**, rather than inspecting the component logs. ![A flow that ingests an API response, extracts it to a DataFrame with a Smart Transform component, and the processes it through a DataFrame Operations component](/img/component-dataframe-operations.png) If you want to use this example to test the **DataFrame Operations** component, do the following: 1. Create a flow with the following components: * **API Request** * **Language Model** * **Smart Transform** * **Type Convert** 2. Configure the [**Smart Transform** component](/smart-transform) and its dependencies: * **API Request**: Configure the [**API Request** component](/api-request) to get JSON data from an endpoint of your choice, and then connect the **API Response** output to the **Smart Transform** component's **Data** input. * **Language Model**: Select your preferred provider and model, and then enter a valid API key. Change the output to **Language Model**, and then connect the `LanguageModel` output to the **Smart Transform** component's **Language Model** input. * **Smart Transform**: In the **Instructions** field, enter natural language instructions to extract data from the API response. Your instructions depend on the response content and desired outcome. For example, if the response contains a large `result` field, you might provide instructions like `explode the result field out into a Data object`. 3. Convert the **Smart Transform** component's `Data` output to `DataFrame`: 1. Connect the **Filtered Data** output to the **Type Convert** component's **Data** input. 2. Set the **Type Convert** component's **Output Type** to **DataFrame**. Now the flow is ready for you to add the **DataFrame Operations** component.
2. Add a **DataFrame Operations** component to the flow, and then connect `DataFrame` output from another component to the **DataFrame** input. All operations in the **DataFrame Operations** component require at least one `DataFrame` input from another component. If a component doesn't produce `DataFrame` output, you can use another component, such as the [**Type Convert** component](/type-convert), to reformat the data before passing it to the **DataFrame Operations** component. Alternatively, you could consider using a component that is designed to process the original data type, such as the [**Parser** component](/parser) or [**Data Operations** component](/data-operations). If you are following along with the example flow, connect the **Type Convert** component's **DataFrame Output** port to the **DataFrame** input. 3. In the **Operations** field, select the operation you want to perform on the incoming `DataFrame`. For example, the **Filter** operation filters the rows based on a specified column and value. :::tip You can select only one operation. If you need to perform multiple operations on the data, you can chain multiple **DataFrame Operations** components together to execute each operation in sequence. For more complex multi-step operations, like dramatic schema changes or pivots, consider using an LLM-powered component, like the [**Structured Output** component](/structured-output) or [**Smart Transform** component](/smart-transform), as a replacement or preparation for the **DataFrame Operations** component. ::: If you're following along with the example flow, select any operation that you want to apply to the data that was extracted by the **Smart Transform** component. To view the contents of the incoming `DataFrame`, click