Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
from typing import Optional, Tuple

import numpy as np
import pandas as pd

from sarus_statistics.ops.exp_quantile.local import get_quantile


def median(
    data: pd.DataFrame,
    data_col: str,
    user_col: str,
    private_col: str,
    weight_col: str,
    noise: float,
    max_multiplicity: float,
    bounds: Tuple[float, float],
    random_generator: Optional[np.random.Generator] = None,
) -> float:
    """Compute DP median of column according to max_multiplicity of user"""

    data[data_col] = np.clip(
        data[data_col],
        a_min=min(bounds[0], bounds[1]),
        a_max=max(bounds[0], bounds[1]),
    )

    median = get_quantile(
        data,
        data_col,
        user_col,
        private_col,
        weight_col,
        1,
        noise,
        0.5,
        True,
        bounds,
        max_multiplicity=max_multiplicity,
        random_generator=random_generator,
    )
    return median