相关疑难解决方法(0)

使用基于另一列的 groupby 的最小最大标准化来标准化数据帧的列

数据框如图所示

Name     Job      Salary
john   painter    40000
peter  engineer   50000
sam     plumber   30000
john    doctor    500000
john    driver    20000
sam    carpenter  10000
peter  scientist  100000
Run Code Online (Sandbox Code Playgroud)

如何按“名称”列进行分组并对每个组的“薪水”列应用标准化?

预期结果:

Name     Job      Salary
john   painter    0.041666
peter  engineer   0
sam     plumber   1
john    doctor    1
john    driver    0
sam    carpenter  0
peter  scientist  1
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法

data = df.groupby('Name').transform(lambda x: (x - x.min()) / x.max()- x.min())
Run Code Online (Sandbox Code Playgroud)

然而,这会产生

         Salary
0 -19999.960000
1 -50000.000000
2  -9999.333333
3 -19999.040000
4 -20000.000000
5 -10000.000000
6 -49999.500000
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas pandas-groupby

2
推荐指数
1
解决办法
4052
查看次数

标签 统计

dataframe ×1

pandas ×1

pandas-groupby ×1

python ×1