Python PCA sklearn ValueError:无法将字符串转换为浮点:';[1,3]';
我有一个熊猫数据框,看起来像这样Python PCA sklearn ValueError:无法将字符串转换为浮点:';[1,3]';,python,pandas,numpy,scipy,scikit-learn,Python,Pandas,Numpy,Scipy,Scikit Learn,我有一个熊猫数据框,看起来像这样 1 0 0 0 0 2 0 0 0 0 0 ... 0 0 1 2 0 0 0 0 0 0 2 0 0 0 3 0 0 0 4 0 0 ... 0 5 0 0 3 0 0 [1, 3] 0 0 3 0 0 0 0 0 0 0 2 0 0 ... 6 6 0
1 0 0 0 0 2 0 0 0 0 0 ... 0 0 1 2 0 0 0 0 0 0
2 0 0 0 3 0 0 0 4 0 0 ... 0 5 0 0 3 0 0 [1, 3] 0 0
3 0 0 0 0 0 0 0 2 0 0 ... 6 6 0 [2, 4] 0 2 0 0 0 0
4 1 0 6 1 0 0 0 0 0 0 ... 0 0 0 0 4 0 0 5 0 0
5 0 0 0 0 6 0 0 [2, 7] 0 0 ... 0 0 0 0 0 0 0 0 0 0
我试图使用PCA来降低数据的维数,但数据中有些点的维数超过了1维,就像这样[2,7]
所以当我运行PCA时,我得到了这个错误
data = pca.fit_transform(z)
ValueError: could not convert string to float: '[1, 3]'
当观测长度不同时,如何处理这一问题 如果
[1,3]
表示该单个单元格有两个数据点,则首先使用汇总函数(例如平均值或中值)为该单元格建立单个值,然后运行PCA
(另外,这些字段的
dtype
似乎是str
-记住要转换为数字类型。)当观察值的长度不同时,普通PCA不起作用。如果
[1,3]
表示该单个单元格有两个数据点,则首先使用汇总函数(例如平均值或中值)为该单元格建立单个值,然后运行PCA
(另外,这些字段的
dtype
似乎是str
-记住要转换为数字类型。)编码如何?我尝试了label encoder,它确实转换了它们,但它为所有列表提供了一个标签我不确定如何更改,但听起来你仍然在解决实际问题。标签编码实际上是一个独立的主题,与您在这里提出的问题不同,这是关于为什么使用PCA得到ValueError
。考虑为代码< LabelEncoder > <代码>线程打开一个单独的问题,并在那里更完整地描述问题。我想把它们标记为这个问题的解决方案,我添加了一个新问题,请检查并帮助我,如果PCA是一个减少,映射你的特征空间在最不同的行空间(方向),确实,如果其中一个数据点有不规则的输入,这将破坏计算。根据列表的物理意义,你应该考虑取平均值、几何数、斩首(放到0),转换为<代码> ABS(最大())>代码>或表示数据的东西。对于编码它们,我尝试了标签编码器,并且确实转换了它们,但是它给出了所有这些列表一个标签,我如何改变它们是不确定的,但听起来你还是在想你真正的问题。标签编码实际上是一个独立的主题,与您在这里提出的问题不同,这是关于为什么使用PCA得到ValueError
。考虑为代码< LabelEncoder > <代码>线程打开一个单独的问题,并在那里更完整地描述问题。我想把它们标记为这个问题的解决方案,我添加了一个新问题,请检查并帮助我,如果PCA是一个减少,映射你的特征空间在最不同的行空间(方向),确实,如果其中一个数据点有不规则的输入,这将破坏计算。根据列表的物理含义,你应该考虑取平均值、几何数、斩首(放到0),转换为<代码> ABS(最大())< /代码>或表示数据足够好的东西。