首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sklearn输出行为

Sklearn输出行为
EN

Stack Overflow用户
提问于 2018-04-29 21:07:26
回答 1查看 105关注 0票数 1

我遇到了一种情况,我想将sklearn的StandardScaler对象应用到我的dataframe的一列中。守则如下:

代码语言:javascript
复制
import pandas as pd
from sklearn.preprocessing import StandardScaler

df = pd.DataFrame([(1,2,3), (2,3,4), (3,4,5)], columns=['a','b','c'])
scaler = StandardScaler().fit(df['c'].values.reshape(-1,1))
df['d'] = df['c'].apply(scaler.transform)
df

当我缩放列c并将结果输出到d列时,d中的值看起来类似于[[-1.224744871391589]],形状为(1,1)

我本来希望输出值是一个数值,而不是上面所示的列表。当然,我可以按照df['d'] = df['d'].apply(lambda x: x[0][0])这样做来绕过它,但是如果没有必要的话,我想避免这种额外的复杂情况。

我是不正确地使用scaler对象,还是这是解决这个问题的唯一方法?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-30 00:11:27

自定义是先实例化转换器/估计器,然后再进行拟合和转换。下面是几个小改动的输出:

代码语言:javascript
复制
import pandas as pd
from sklearn.preprocessing import StandardScaler

df = pd.DataFrame([(1,2,3), (2,3,4), (3,4,5)], columns=['a','b','c'])

scaler = StandardScaler()

scaler.fit(df['c'].values.reshape(-1,1))

df['d'] = scaler.transform(df['c'].values.reshape(-1,1))
df

Out[84]: 
   a  b  c         d
0  1  2  3 -1.224745
1  2  3  4  0.000000
2  3  4  5  1.224745
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50091331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档