nispace.utils.utils.mean_by_set_df
- nispace.utils.utils.mean_by_set_df(df, mean_by_set=True, weighted=True, mean_median='mean')[source]
(Weighted) mean/median aggregation of a DataFrame grouped by a “set” index level.
Plain pandas/numpy (no numba). Used in
api.py’s set-aggregation path (aggregating multiple maps within a named “set” of X reference maps into a single representative map). NaN is excluded vianp.ma/nanmedian.- Parameters:
df (pd.DataFrame) – Must have a “set” level in its index for grouping to take effect, and (if weighted=True) a “weight” level with per-row weights.
mean_by_set (bool, default=True) – Group by the “set” index level. Silently disabled (treated as False) if df.index has no “set” level.
weighted (bool, default=True) – Weight rows by the “weight” index level. Silently disabled if df.index has no “weight” level.
mean_median ({"mean", "median"}, default="mean") – Aggregation statistic. Weighted median is computed via a value-repetition workaround (
np.repeatby integer weight), not a true weighted-median algorithm.
- Returns:
One row per set (or a single row if mean_by_set=False), indexed by a “map” level.
- Return type:
pd.DataFrame
- Raises:
ValueError – If df is not a pandas DataFrame.