PCA sklearn ValueError:无法将字符串转换为float:'[1,3]

时间:2017-10-23 01:45:07

标签: python pandas numpy scipy scikit-learn

我有一个看起来像这样的pandas数据框

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 个答案:

答案 0 :(得分:2)

当观察长度不同时,香草PCA不起作用 如果df = pd.DataFrame([podcast_dict], columns=podcast_dict.keys()) df_podcast = pd.concat([df_podcast, df], axis =0).reset_index() 表示该单个单元格有两个数据点,请使用汇总函数(例如均值或中位数)首先为该单元格建立单个值,然后运行PCA。

(另外,这些字段的[1,3]似乎是dtype - 请记住转换为数字类型。)