pd_provider

Pandas-backed unlabeled data provider.

class pysatl_cpd.data.providers.plain.pd_provider.PandasDataProvider(dataset, annotation)[source]

Bases: DataProvider[NumericArray, AnnotationT], Generic

Unlabeled pandas-backed provider for numeric feature arrays.

Parameters:
__init__(dataset, annotation)[source]
Parameters:
  • dataset (DataFrame)

  • annotation (AnnotationT)

Return type:

None

__iter__()[source]

Iterate over rows of the dataset.

Returns:

Iterator over scalar values for single-column data or row arrays for multivariate data.

Return type:

Iterator[ndarray[tuple[int, ...], dtype[double]]]

__len__()[source]

Return the number of rows in the dataset.

Returns:

Number of samples stored in the provider.

Return type:

int

property annotation: AnnotationT

Get annotation.

Returns:

The annotation object.

Return type:

annotation

property dataset: DataFrame

Get dataset copy.

Returns:

Copy of the underlying DataFrame.

Return type:

dataset

property columns: Sequence[str]

Get column names.

Returns:

List of column names.

Return type:

columns

select_columns(columns, *, rename_provider=False)[source]

Select subset of columns.

Parameters:
  • columns (Sequence[str]) – Column names to select.

  • rename_provider (bool) – If True, updates the provider name to reflect the selected columns.

Returns:

New provider with selected columns.

Return type:

PandasDataProvider[TypeVar(AnnotationT, bound= UnlabeledTimeseriesAnnotation)]

Raises:

ValueError – If no columns are selected or unknown columns are requested.

create_feature_column(*, name, mapping, rename_provider=False)[source]

Append a derived feature column computed row-wise.

Parameters:
  • name (str) – Name of the new feature column.

  • mapping (Callable[[Series], object]) – Callable applied to each row of the dataset.

  • rename_provider (bool) – If True, updates the provider name to reflect the new column.

Returns:

New provider with the appended feature column.

Return type:

PandasDataProvider[TypeVar(AnnotationT, bound= UnlabeledTimeseriesAnnotation)]

Raises:

ValueError – If the column name is empty or already exists.

cut(start, stop, *, annotation=None)[source]

Slice dataset by row indices.

Parameters:
Returns:

New provider with sliced data.

Return type:

PandasDataProvider[TypeVar(AnnotationT, bound= UnlabeledTimeseriesAnnotation)]

classmethod merge(providers, annotation_builder=None)[source]

Merge multiple providers.

Parameters:
Returns:

New merged provider.

Return type:

PandasDataProvider[TypeVar(AnnotationT, bound= UnlabeledTimeseriesAnnotation)]

Raises:

ValueError – If providers do not share the same columns and column order.