【发布时间】:2021-06-25 10:00:33
【问题描述】:
给定一个熊猫数据框,例如
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: ...)
【问题讨论】:
标签: python pandas pandas-groupby normalize