Панды: как присоединить ваши данные после операции - PullRequest
0 голосов
/ 26 марта 2019

У меня есть следующий фрейм данных

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

Теперь, как объединить мои данные в строках исходных данных, чтобы я мог получить вышеуказанный вывод?

1 Ответ

1 голос
/ 26 марта 2019

Вам просто нужно присвоить его обратно

df.loc[df.group==1,'val_minmax']=minmax.fit_transform(df[df['group'] == 1][['value']])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...