> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-sdk-testing-latest.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# EvalTable

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub source
  </a>;

<GitHubLink url="https://github.com/wandb/wandb/blob/main/wandb/sdk/data_types/eval_table.py#L28" />

## <kbd>class</kbd> EvalTable

```python theme={null}
columns: 'list[str | int] | None' = None,
data: 'list[Iterable[Any]] | np.ndarray | pd.DataFrame | None' = None,
rows: 'list[Iterable[Any]] | None' = None,
dataframe: 'pd.DataFrame | None' = None,
dtype: 'Any' = None,
optional: 'bool | list[bool]' = True,
allow_mixed_types: 'bool' = False,
log_mode: "Literal['IMMUTABLE']" = 'IMMUTABLE', *,
input_columns: 'list[str] | None' = None,
output_columns: 'list[str] | None' = None,
score_columns: 'list[str] | None' = None,
unsupported_media_mode: 'media_adapters.UnsupportedMediaMode' = 'stub'
```

## Description

A Table subclass that routes run.log() to the new Eval Tables experience.

When logged via run.log(), an EvalTable is logged as a Weave Eval via
weave.EvaluationLogger instead of being uploaded as a regular wandb Table
artifact.

Note: EvalTable is a work-in-progress and is NOT yet officially released or
supported.

## Args

* `columns`: Names of the columns in the table. If unset, but input\_columns, output\_columns, or score\_columns are set, then we'll just set columns to the union of those, in that order.
* `data`:
* `rows`:
* `dataframe`:
* `dtype`:
* `optional`:
* `allow_mixed_types`:
* `log_mode`: Controls how the table is logged when the same EvalTable is passed to `run.log()` more than once.
* `input_columns`: Names of the input columns. If set, designates these columns as inputs. Eval comparisons will match rows based on matching values from input columns. If unset, we will inject a "row" index input column so comparisons can match against that.
* `output_columns`: Names of the output columns. These represents the values to be compared. Any columns not designated as input, output, or score will default to being output columns.
* `score_columns`: Names of the score columns. These represent derived scores for the outputs. By default, we will auto-summarize any numeric and boolean scores.
* `unsupported_media_mode`: How to handle unsupported wandb media/value types.

## Methods

### <kbd>method</kbd> add\_column

```python theme={null}
self,
name: 'str | int',
data: 'list[Any] | np.ndarray',
optional: 'bool' = False
```

Adds a column of data to the table.

##### Arguments

* `name`: (str) - the unique name of the column
* `data`: (list | np.array) - a column of homogeneous data
* `optional`: (bool) - if null-like values are permitted

### <kbd>method</kbd> add\_computed\_columns

```python theme={null}
(self, fn)
```

Adds one or more computed columns based on existing data.

##### Arguments

* `fn`: A function which accepts one or two parameters, ndx (int) and row (dict), which is expected to return a dict representing new columns for that row, keyed by the new column names. - `ndx` is an integer representing the index of the row. Only included if `include_ndx` is set to `True`. - `row` is a dictionary keyed by existing columns

### <kbd>method</kbd> add\_data

```python theme={null}
self, *data: 'Any'
```

Adds a new row of data to the table.

The maximum amount ofrows in a table is determined by
`wandb.Table.MAX_ARTIFACT_ROWS`.

The length of the data should match the length of the table column.

##### Arguments

* `data`:

### <kbd>method</kbd> add\_row

```python theme={null}
(self, *row)
```

Deprecated. Use `Table.add_data` method instead.

##### Arguments

* `row`:

### <kbd>method</kbd> cast

```python theme={null}
(self, col_name, dtype, optional=False)
```

Casts a column to a specific data type.

This can be one of the normal python classes, an internal W\&B type,
or an example object, like an instance of wandb.Image or
wandb.Classes.

##### Arguments

* `col_name`: The name of the column to cast.
* `dtype`: The target dtype.
* `optional`: If the column should allow Nones.

### <kbd>method</kbd> get\_column

```python theme={null}
(self, name, convert_to=None)
```

Retrieves a column from the table and optionally converts it to a NumPy object.

##### Arguments

* `name`: (str) - the name of the column
* `convert_to`: (str, optional)

### <kbd>method</kbd> get\_dataframe

```python theme={null}
(self)
```

Returns a `pandas.DataFrame` of the table.

### <kbd>method</kbd> get\_index

```python theme={null}
(self)
```

Returns an array of row indexes for use in other tables to create links.
