我做过PCA。
我想将这些结果放在数据框中。更具体地说,我想创建一个包含两行和两列的数据帧(在wc_accounts上执行PCA之后的主要组件)
我尝试过:
pca = PCA(n_components=2)
principalComponents = pca.fit(wc_accounts)
data = pca.components_
print(data)
principalDf = pd.DataFrame(data , columns = ['principal component 1', 'principal component 2'])
但是,最后一行给出了错误:ValueError: Shape of passed values is (828, 2), indices imply (2, 2)
因为它太大了我无法完整打印数据。本质上,它是一个由两个数组(长度为828)的浮点数组成的数组:
[[-1.57759323e-02 -1.57759323e-02 -0.00000000e+00 ... -1.57759323e-02
-3.15518646e-02 1.57759323e-02]
[-9.99844616e-01 2.06534552e-04 0.00000000e+00 ... 2.06534552e-04
4.13069105e-04 -2.06534552e-04]]
看起来data
的方向相对于pd.DataFrame
的预期转换。
所以,您可以使用index
代替然后转置:
principalDf = pd.DataFrame(data, index=['principal component 1', 'principal component 2']).T