def normalize_feature_for_target_col(in_df, str_norm_target_col, abs_max_num):
    """
    normalize designated column
    e.g.
        normalize col with max "60"
           [20, 30, 70, 65, -90]
        -> [0.333..., 0.5, 1.0, 1.0, -1.0]
    
    :param  in_df               : pandas.DataFrame, 
    :param  str_norm_target_col : string, 
    :param  abs_max_num         : float, absolute max number (normalize col with this number)
    :return out_df              : pandas.DataFrame
    """

    assert(abs_max_num > 0), (
        'Please set positive number in "abs_max_num".'
    )

    # find target exceeding abs_max_num and overwrite the num with abs_max_num
    df = in_df

    # positive
    cond = (df.loc[:, str_norm_target_col] >= abs_max_num)
    df.loc[cond, str_norm_target_col] = abs_max_num

    # negative
    cond = (df.loc[:, str_norm_target_col] <= -abs_max_num)
    df.loc[cond, str_norm_target_col] = -abs_max_num
    
    # normalization
    df.loc[:, str_norm_target_col] = df.loc[:, str_norm_target_col] / abs_max_num

    out_df = df
    return out_df