Pandas按groupby上的列标准化

给定一个熊猫数据框,例如

import pandas as pd

df = pd.DataFrame({'id': ['id1','id1','id2','id2'] , 
                   'x':  [1,2,3,4], 
                   'y':  [10,20,30,40]})

每个数值列可以被归一化到单位间隔[0,1]

columns = ['x', 'y']

for column in columns:
    df[column] = (df[column] - df[column].min()) / (df[column].max() - df[column].min())

导致

    id         x         y
0  id1  0.000000  0.000000
1  id1  0.333333  0.333333
2  id2  0.666667  0.666667
3  id2  1.000000  1.000000

但是,如何在每个数字列上应用这种标准化id?预期的结果将在这个过于简单的例子中

    id         x         y
0  id1  0.000000  0.000000
1  id1  1.000000  1.000000
2  id2  0.000000  0.000000
3  id2  1.000000  1.000000

事实证明不清楚如何在之后更新每个标准化列

df.groupby(['id']).apply(lambda x: ...)

以上是Pandas按groupby上的列标准化的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>