У меня есть следующий фрейм данных
df:
group people value value_50
1 5 100 1
2 2 90 1
1 10 80 1
2 20 40 0
1 7 10 0
2 23 30 0
И я пытаюсь применить sklearn minmax к одному из столбцов, учитывая условие для набора данных, а затем хочу присоединить его обратно согласно индексу панд в моих исходных данных
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
После копирования вышеуказанных данных
data = pd.read_clipboard()
minmax = MinMaxScaler(feature_range=(0,10))
''' Applying a filter on "group" and then apply minmax only on those values '''
val = pd.DataFrame(minmax.fit_transform(data[data['group'] == 1][['value']])
,columns = ['val_minmax'] )
Но похоже, что мы теряем индекс после minmax
val
val_minmax
0 10.000000
1 7.777778
2 0.000000
где индекс в моем исходном наборе данных для этого фильтра
data[data['group'] == 1]['value']
output:
0 100
2 80
4 10
Желаемый набор данных:
df_out:
group people value value_50 val_minmax
1 5 100 1 10
2 2 90 1 na
1 10 80 1 7.88
2 20 40 0 na
1 7 10 0 0
2 23 30 0 na
Теперь, как объединить мои данные в строках исходных данных, чтобы я мог получить вышеуказанный вывод?