> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fiddler.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# items_from_pandas

> Build one dataset item per DataFrame row.

**New in version 0.8.0**

Column mapping:

1. If `input_columns` is given, those columns become inputs and any
   column not mapped elsewhere goes to extras.
2. If `input_columns` is None, every column not mapped elsewhere
   becomes an input.
3. The id and source columns, when present, become the item's `id`,
   `source_name` and `source_id`. Rows without an id get a new one;
   an id already in the dataset makes [`Dataset.update_items()`](https://docs.fiddler.ai/sdk-api/evals/dataset#update_items)
   replace that item.

## Parameters

**df** `pd.DataFrame` *required*

The rows to convert. Must not be empty.

**input\_columns** `list[str] | None` (default: None)

Columns to use as inputs.

**expected\_output\_columns** `list[str] | None` (default: None)

Columns holding the expected outputs.

**metadata\_columns** `list[str] | None` (default: None)

Columns to store as metadata.

**extras\_columns** `list[str] | None` (default: None)

Columns to store as extras.

**id\_column** `str` (default: "id")

Column holding each item's id. Defaults to "id".

**source\_name\_column** `str` (default: "source\_name")

Column holding the source name. Defaults to "source\_name".

**source\_id\_column** `str` (default: "source\_id")

Column holding the source id. Defaults to "source\_id".

## Returns

One item per row, in row order.

## Raises

* **ValueError** – If the DataFrame is empty or a named column is missing.
* **ImportError** – If pandas is not installed.

## Example

```python theme={null}
df = pd.DataFrame([{"question": "What is 2 + 2?", "answer": "4"}])
items = items_from_pandas(
    df, input_columns=["question"], expected_output_columns=["answer"]
)
dataset = dataset.update_items(items=items).dataset
```
