def normalize()

in decisionai_plugin/common/util/data.py [0:0]


def normalize(df, normalize_base=None):
    def max_min_scaler(x, base):
        maxx = np.max(x)
        minn = np.min(x)
        if base:
            maxx = base['max']
            minn = base['min']
        if maxx != minn:
            return (x - minn) / (maxx - minn)
        else:
            x[:] = 1
            return x
    data = pd.DataFrame(index=df.index)
    for item in df.columns:
        if item == 'timestamp':
            data[item] = df[item]
            continue
        base = normalize_base[item] if normalize_base is not None and item in normalize_base else None
        data[item] = df[[item]].apply(lambda x: max_min_scaler(x, base))
    return data