rhythmic_segments.meta¶
Metadata-handling utilities for rhythmic segments.
Attributes¶
Functions¶
|
Return meta as a |
|
Aggregate metadata windows aligned with numeric value blocks. |
|
|
|
Return every column value keyed by its position. |
|
Return metadata from the row at |
|
Return metadata from the first interval. |
|
Return metadata from the last interval. |
|
Join values from each column. |
|
Return metadata as lists per column. |
|
Return the most frequent value per column using first-occurrence tie breaks. |
|
Return a named metadata aggregator. |
Module Contents¶
- rhythmic_segments.meta.Aggregator¶
- rhythmic_segments.meta.coerce_meta_frame(meta: Any, expected_rows: int | None = None, missing_rows_message: str = 'meta must match the expected row count', *, columns: collections.abc.Iterable[str] | None = None, constants: collections.abc.Mapping[str, Any] | None = None) pandas.DataFrame ¶
Return meta as a
pandas.DataFrame
.
- rhythmic_segments.meta.aggregate_meta(meta_blocks: collections.abc.Iterable[pandas.DataFrame], value_blocks: collections.abc.Iterable[numpy.ndarray], window_len: int, meta_agg: Aggregator, expected_records: int) pandas.DataFrame ¶
Aggregate metadata windows aligned with numeric value blocks.
- rhythmic_segments.meta.resolve_columns_and_names(df: pandas.DataFrame, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Tuple[List[str], List[str]] ¶
- rhythmic_segments.meta.agg_copy(df: pandas.DataFrame, *, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Return every column value keyed by its position.
>>> import pandas as pd >>> agg_copy(pd.DataFrame({"label": ["a", "b"]})) {'label_1': 'a', 'label_2': 'b'}
- rhythmic_segments.meta.agg_index(df: pandas.DataFrame, index: int, *, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Return metadata from the row at
index
.>>> import pandas as pd >>> agg_index(pd.DataFrame({"label": ["a", "b"], "section": ["x", "y"]}), 1) {'label': 'b', 'section': 'y'} >>> agg_index(pd.DataFrame({"label": ["a", "b"], "section": ["x", "y"]}), 1, columns=["label"]) {'label': 'b'}
- rhythmic_segments.meta.agg_first(df: pandas.DataFrame, *, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Return metadata from the first interval.
>>> import pandas as pd >>> agg_first(pd.DataFrame({"label": ["a", "b"]})) {'label': 'a'}
- rhythmic_segments.meta.agg_last(df: pandas.DataFrame, *, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Return metadata from the last interval.
>>> import pandas as pd >>> agg_last(pd.DataFrame({"label": ["a", "b"]})) {'label': 'b'}
- rhythmic_segments.meta.agg_join(df: pandas.DataFrame, *, separator: str = '-', columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Join values from each column.
>>> import pandas as pd >>> agg_join(pd.DataFrame({"label": ["a", "b"], "section": ["x", "y"]}), separator="|") {'label': 'a|b', 'section': 'x|y'}
- rhythmic_segments.meta.agg_list(df: pandas.DataFrame, *, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Return metadata as lists per column.
>>> import pandas as pd >>> agg_list(pd.DataFrame({"label": ["a", "b"]})) {'label': ['a', 'b']}
- rhythmic_segments.meta.agg_mode(df: pandas.DataFrame, *, columns: collections.abc.Iterable[str] | None = None, names: collections.abc.Iterable[str] | None = None) Dict[str, Any] ¶
Return the most frequent value per column using first-occurrence tie breaks.
The most common value is reported for each selected column. When multiple values share the same top frequency, the value that appears first in the column is chosen so results stay deterministic.
>>> import pandas as pd >>> agg_mode(pd.DataFrame({"label": ["a", "b", "a"], "section": ["x", "y", "y"]})) {'label': 'a', 'section': 'y'} >>> agg_mode(pd.DataFrame({"label": ["b", "a", "a", "b"]})) {'label': 'b'}
- rhythmic_segments.meta.get_aggregator(name: str, **kwargs: Any) Aggregator ¶
Return a named metadata aggregator.
Supported names are
"copy"
,"index"
,"first"
,"last"
,"join"
,"list"
, and"mode"
. Additional keyword arguments are forwarded to the underlying aggregator.>>> import pandas as pd >>> agg = get_aggregator("first", columns=["label"]) >>> agg(pd.DataFrame({"label": ["a", "b"]})) {'label': 'a'} >>> join = get_aggregator("join", columns=["label"], separator="|") >>> join(pd.DataFrame({"label": ["a", "b"]})) {'label': 'a|b'}