eegproc.data.schema module

Column roles for signal samples and precomputed EEG features.

class eegproc.data.schema.EEGFrame(data, fs, kind='signal', subject_columns=('subject',), trial_columns=('trial',), time_column=None, label_columns=('label',), feature_columns=None)[source]

Bases: object

An EEG table with explicit subject, trial, label, and feature columns.

Rows within a trial are sorted by time_column when supplied. If it is omitted, sample_index is used when present; otherwise row order is kept. Label and identifier columns are always excluded from inferred features.

Parameters:
  • data (DataFrame)

  • fs (float)

  • kind (Literal['signal', 'features'], default: 'signal')

  • subject_columns (tuple[str, ...], default: ('subject',))

  • trial_columns (tuple[str, ...], default: ('trial',))

  • time_column (str | None, default: None)

  • label_columns (tuple[str, ...], default: ('label',))

  • feature_columns (tuple[str, ...] | None, default: None)

data: DataFrame
feature_columns: tuple[str, ...] | None = None
fs: float
kind: Literal['signal', 'features'] = 'signal'
label_columns: tuple[str, ...] = ('label',)
subject_columns: tuple[str, ...] = ('subject',)
time_column: str | None = None
trial_columns: tuple[str, ...] = ('trial',)
class eegproc.data.schema.FeatureColumn(channel, band=None, feature=None)[source]

Bases: object

Channel, optional band, and optional statistic in a feature name.

Parameters:
  • channel (str)

  • band (str | None, default: None)

  • feature (str | None, default: None)

band: str | None = None
channel: str
feature: str | None = None
eegproc.data.schema.median_split(label_column, *, threshold)[source]

Create a fixed-threshold label transform; no threshold is fitted to data.

Parameters:
  • label_column (str)

  • threshold (float)

eegproc.data.schema.parse_feature_column(name)[source]

Parse channel[_band][_statistic] without substring matching.

Parameters:

name (str)

Return type:

FeatureColumn