在异构数组上调用preprocessing.scale



我有这个TypeError,如下所示,我检查了我的df,它都只包含数字,这会是我转换为numpy数组时造成的吗?转换后,数组具有类似的项目

[Timestamp('1993-02-11 00:00:00') 28.1216 28.3374 ...]

有什么建议可以解决这个问题吗?

df:           
Date      Open      High       Low     Close     Volume  
9    1993-02-11   28.1216   28.3374   28.1216   28.2197      19500  
10   1993-02-12   28.1804   28.1804   28.0038   28.0038      42500  
11   1993-02-16   27.9253   27.9253   27.2581   27.2974     374800  
12   1993-02-17   27.2974   27.3366   27.1796   27.2777     210900  
X = np.array(df.drop(['High'], 1))
X = preprocessing.scale(X)
TypeError: float() argument must be a string or a number

当您说您的数据帧">all只包含数字"时,您还注意到第一列由日期时间对象组成。错误告诉您preprocessing.scale只想使用浮点值。

然而,真正的问题是,你期望从一开始会发生什么。preprocessing.scale将值集中在平均值上并对方差进行归一化。因此,测量的数量都是在大致相同的基础上表示的。现在,第一列告诉数据对应的日期,而其余列本身就是数字数据。为什么要使日期正常化您将如何规范日期?

从语义上讲,我认为你应该别管约会对象。无论您计划对数字数据执行何种后处理,标准化数据仍应通过原始日期进行参数化。如果你也想处理你的日期,你需要想出一个明确的方法来将你的日期处理成数字(比如,从给定日期到给定单位的经过时间)。

所以我认为你应该完全放弃处理回合中的日期,从开始

X = df.drop(['Date','High'], 1).as_matrix()

相关内容

  • 没有找到相关文章

最新更新