熊猫:如何在手术后重新加入数据

时间:2019-03-26 14:02:05

标签: python pandas merge scikit-learn

我有以下数据框

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应用于列中的一个,给定数据集的条件,然后希望按照我原始数据中的pandas索引将其重新加入

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 个答案:

答案 0 :(得分:1)

您只需要将其分配回

O(N)
相关问题