pandas масштабирует столбец фрейма данных в соответствии с другой нормализацией столбцов

#python #pandas #normalize #rescale

Вопрос:

У меня есть фрейм данных:

 df1

   col1  col2   col_base
0  1142   177  596821046
1    24    22  552973776
2   105     6  593632325
3    50    18   47238004
 

Я хочу нормализовать col_base до диапазона <0,1> и автоматически масштабировать оставшиеся столбцы.

Проблема в том, что я знаю, что могу установить какой-нибудь MinMaxScaler или какой-нибудь sklearn.нормализатор предварительной обработки, но я не хочу вручную разделять col1, col2, но я ищу какой-то автоматический способ, чтобы вывод был:

        col1_rs     col2_rs  col_base_norm
0  1142.000000  177.000000       1.000000
1    26.080799   23.907399       0.920217
2   105.612773    6.035016       0.994198
3          NaN         NaN       0.000000
 

Это мой текущий код:

 a,b = 0,1
x, y = df1.col_base.min(), df1.col_base.max()
df1['col_base_norm'] = (df1.col_base - x) / (y - x) * (b - a)   a
df1['col1_rs'] = df1['col1'] / df1['col_base_norm']
df1['col2_rs'] = df1['col2'] / df1['col_base_norm']
df1 = df1.replace([np.inf, -np.inf], np.nan, inplace=False)
df1[['col1_rs', 'col2_rs', 'col_base_norm']]