flasc.utilities.energy_ratio_utilities.add_bin_weights#
- flasc.utilities.energy_ratio_utilities.add_bin_weights(df_: DataFrame, df_freq_pl: DataFrame | None = None, bin_cols_without_df_name: List | None = None, weight_by: str = 'min')[source]#
Add weights to DataFrame bins.
Add weights to DataFrame bins based on either frequency counts or the provided frequency table df_freq_pl.
This function assigns weights to DataFrame bins. If 'df_freq_pl' is provided, these weights are used directly. If 'df_freq_pl' is not provided, the function calculates the weights from the input DataFrame 'df_'. Weights can be determined as either the minimum ('min') or the sum ('sum') of counts.
- Parameters:
df (DataFrame) -- The input Polars DataFrame containing bins and frequency counts.
df_freq_pl (DataFrame, optional) -- A Polars DataFrame containing frequency counts for bins. If not provided, the function will calculate these counts from 'df_'.
bin_cols_without_df_name (List, optional) -- List of columns used for grouping bins without 'df_name'.
weight_by (str, optional) -- Weight calculation method, either 'min' (minimum count) or 'sum' (sum of counts). Defaults to 'min'.
df_ (DataFrame)
- Returns:
- A tuple containing the modified DataFrame 'df_'
with added weights and the DataFrame
- Return type:
Tuple[pl.DataFrame, pl.DataFrame]
'df_freq_pl' with the calculated frequency counts.
- Raises:
RuntimeError -- If none of the ws/wd bins in data appear in df_freq.
UserWarning -- If some bins in data are not in df_freq and will receive a weight of 0.
- Parameters:
df_ (DataFrame)
df_freq_pl (DataFrame | None)
bin_cols_without_df_name (List | None)
weight_by (str)