Skip to main content
The Pandas Client is used for batch logging of LLM traces, evaluations, and traditional ML model predictions using pandas DataFrames.
from arize.pandas.logger import Client
client = Client(...)

log

The log() method migrates from client.log() to client.ml.log().

Parameter Reference

This table provides a complete mapping of all parameters between v7 and v8, including which parameters were removed, renamed, or remain unchanged.
Parameterv7v8Changes
space_idClient initRequired per callMust pass explicitly
model_idRequiredRequiredRenamed to model_name
dataframeRequiredRequired
schemaRequiredRequired
environmentRequiredRequired
model_typeRequiredRequired
model_versionOptionalOptional
batch_idOptionalOptional
validateOptionalOptional
metrics_validationOptionalOptional
surrogate_explainabilityOptionalOptional
timeoutOptionalOptional
pathOptionalOptionalRenamed to tmp_dir for clarity
syncOptional❌ RemovedNo longer supported
verboseOptional❌ RemovedUse Python logging config instead

Side-by-Side Comparison

See the complete migration in action with this example showing both client initialization and logging model predictions.
from arize.pandas.logger import Client
from arize.utils.types import Environments, ModelTypes, Schema

# Client initialization
client = Client(
    api_key="your-api-key",
    space_id="your-space-id"
)

# Logging model predictions
response = client.log(
    dataframe=predictions_df,
    schema=schema,
    environment=Environments.PRODUCTION,
    model_id="my-model",
    model_type=ModelTypes.BINARY_CLASSIFICATION,
    model_version="v1.0",
    batch_id="batch-123",
    metrics_validation=[Metrics.CLASSIFICATION],
    validate=True,
    path="/tmp/arize",
    surrogate_explainability=False,
    timeout=30.0,
    sync=False,
    verbose=True
)

log_spans

The log_spans() method migrates from client.log_spans() to client.spans.log().

Parameter Reference

This table provides a complete mapping of all parameters between v7 and v8, including which parameters were removed, renamed, or remain unchanged.
Parameterv7v8Notes / Changes
space_idClient initRequired per callMust pass explicitly
project_nameOptionalRequiredMust pass explicitly
dataframeRequiredRequired
evals_dataframeOptionalOptional
datetime_formatOptionalOptional
validateOptionalOptional
timeoutOptionalOptional
model_idDeprecated❌ RemovedUse project_name instead
model_versionOptional❌ RemovedNo longer supported
pathOptionalOptionalRenamed to tmp_dir for clarity
verboseOptional❌ RemovedUse Python logging config instead

Side-by-Side Comparison

See the complete migration in action with this example showing both client initialization and logging spans with all common parameters.
from arize.pandas.logger import Client

# Client initialization
client = Client(
    api_key="your-api-key",
    space_id="your-space-id"
)

# Logging spans
response = client.log_spans(
    dataframe=spans_df,
    model_id="my-project",  # or project_name
    model_version="v1.0",   # optional
    evals_dataframe=evals_df,  # optional
    datetime_format="%Y-%m-%dT%H:%M:%S.%f+00:00",
    validate=True,
    path="/tmp/arize",
    timeout=30.0,
    verbose=True,
    project_name="my-project"  # alternative to model_id
)

log_evaluations & log_evaluations_sync

In v7, there were two separate methods for logging evaluations: log_evaluations() (async HTTP) and log_evaluations_sync() (sync gRPC). In v8, both consolidate into a single update_evaluations() method that uses gRPC by default with an optional force_http parameter. Both v7 methods (log_evaluations and log_evaluations_sync) now use the same v8 method: update_evaluations(), which uses Arrow Flight (gRPC) by default, matching the behavior of v7’s log_evaluations_sync(). Use force_http=True if you need HTTP transport (not recommended for large payloads).

Parameter Reference

This table provides a complete mapping of all parameters between v7 and v8, including which parameters were removed, renamed, or remain unchanged.
Parameterv7v8Notes / Changes
space_idClient initRequired per callMust pass explicitly
project_nameOptionalRequiredMust pass explicitly
dataframeRequiredRequired
validateOptionalOptional
timeoutOptionalOptional
model_idDeprecated❌ RemovedUse project_name instead
model_versionOptional❌ RemovedNo longer supported
verboseOptional❌ RemovedUse Python logging config instead
tmp_dirN/A✅ NewTemporary directory for file storage
force_httpN/A✅ NewForce HTTP transport (defaults to False)

Side-by-Side Comparison

See the complete migration in action with this example showing both client initialization and logging evaluations synchronously.

log_evaluations_sync

from arize.pandas.logger import Client

# Client initialization
client = Client(
    api_key="your-api-key",
    space_id="your-space-id"
)

# Logging evaluations (sync via gRPC)
response = client.log_evaluations_sync(
    dataframe=evals_df,
    model_id="my-project",  # or project_name
    model_version="v1.0",   # optional
    validate=True,
    timeout=30.0,
    verbose=True,
    project_name="my-project"  # alternative to model_id
)

log_evaluations

from arize.pandas.logger import Client

# Client initialization
client = Client(
    api_key="your-api-key",
    space_id="your-space-id"
)

# Logging evaluations
response = client.log_evaluations(
    dataframe=evals_df,
    model_id="my-project",  # or project_name
    model_version="v1.0",   # optional
    validate=True,
    path="/tmp/arize",
    timeout=30.0,
    verbose=True,
    project_name="my-project"  # alternative to model_id
)

log_annotations

The log_annotations() method migrates from client.log_annotations() to client.spans.update_annotations().

Parameter Reference

This table provides a complete mapping of all parameters between v7 and v8, including which parameters were removed, renamed, or remain unchanged.
Parameterv7v8Notes / Changes
space_idClient initRequired per callMust pass explicitly
project_nameRequiredRequired
dataframeRequiredRequired
validateOptionalOptional
verboseOptional❌ RemovedUse Python logging config instead

Side-by-Side Comparison

See the complete migration in action with this example showing both client initialization and logging annotations.
from arize.pandas.logger import Client

# Client initialization
client = Client(
    api_key="your-api-key",
    space_id="your-space-id"
)

# Logging annotations
response = client.log_annotations(
    dataframe=annotations_df,
    project_name="my-project",
    validate=True,
    verbose=True
)

log_metadata

The log_metadata() method migrates from client.log_metadata() to client.spans.update_metadata().

Parameter Reference

This table provides a complete mapping of all parameters between v7 and v8, including which parameters were removed, renamed, or remain unchanged.
Parameterv7v8Changes
space_idClient initRequired per callMust pass explicitly
project_nameRequiredRequired
dataframeRequiredRequired
patch_document_column_nameOptionalOptional
validateOptionalOptional
verboseOptional❌ RemovedUse Python logging config instead

Side-by-Side Comparison

See the complete migration in action with this example showing both client initialization and logging metadata updates.
from arize.pandas.logger import Client

# Client initialization
client = Client(
    api_key="your-api-key",
    space_id="your-space-id"
)

# Logging metadata
response = client.log_metadata(
    dataframe=metadata_df,
    project_name="my-project",
    patch_document_column_name="patch_document",
    validate=True,
    verbose=True
)