问题描述
我有数据框:
df1
col1 col2 col_base
0 1142 177 596821046
1 24 22 552973776
2 105 6 593632325
3 50 18 47238004
我想将 col_base 规范化为 范围并自动重新缩放剩余的列。
我遇到的问题是我知道我可以安装一些 MinMaxScaler 或一些 sklearn.preprocessing 规范化器,但我不想手动划分 col1、col2,但我正在寻找一些自动化的方式,所以输出是:
col1_rs col2_rs col_base_norm
0 1142.000000 177.000000 1.000000
1 26.080799 23.907399 0.920217
2 105.612773 6.035016 0.994198
3 NaN NaN 0.000000
这是我当前的代码:
a,b = 0,1
x,y = df1.col_base.min(),df1.col_base.max()
df1['col_base_norm'] = (df1.col_base - x) / (y - x) * (b - a) + a
df1['col1_rs'] = df1['col1'] / df1['col_base_norm']
df1['col2_rs'] = df1['col2'] / df1['col_base_norm']
df1 = df1.replace([np.inf,-np.inf],np.nan,inplace=False)
df1[['col1_rs','col2_rs','col_base_norm']]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)