2017-09-13 39 views
0

我有一個'數據集合' df,數據如下。我正在嘗試使用sklearn對數據集合進行主成分分析(PCA)。但我越來越Typeerror需要使用numpy或sklearn對python中的數據集合進行主成分分析

from sklearn.decomposition import PCA 
df # dataframe collection 
pca = PCA(n_components=5) 
pca.fit(X) 

如何將數據幀集合轉換爲數組矩陣與序列。我想,如果我轉換成數組矩陣,我將能夠做到PCA

數據:

{'USSP2 CMPN Curncy': 
0  0.297453 
1  0.320505 
2  0.345978 
3  0.427871 
Name: (USSP2 CMPN Curncy, PX_LAST), Length: 1747, dtype: float64, 
'MARGDEBT Index': 
0  0.095478 
1  0.167469 
2  0.186317 
3  0.203729 
Name: (MARGDEBT Index, PX_LAST), Length: 79, dtype: float64, 
'SL% SMT% Index': 
0  0.163636 
1  0.000000 
2  0.000000 
3  0.363636 
Name: (SL% SMT% Index, PX_LAST), dtype: float64, 
'FFSRAIWS Index': 
0  0.157234 
1  0.278174 
2  0.530603 
3  0.526519 
Name: (FFSRAIWS Index, PX_LAST), dtype: float64, 
'USPHNSA Index': 
0  0.107330 
1  0.213351 
2  0.544503 
3  0.460733 
Name: (USPHNSA Index, PX_LAST), Length: 79, dtype: float64] 

誰能幫助在PCA的數據幀的集合。謝謝!

回答

1

您的數據幀集合DataFrame對象的字典(dict)。

要執行分析,您需要有一組數據來處理。因此,第一步是將數據轉換爲單個DataFrame。熊貓本身支持從數據幀字典中的連接,例如,

import pandas as pd 

df = { 
    'Currency1': pd.DataFrame([[0.297453,0.5]]), 
    'Currency2': pd.DataFrame([[0.297453,0.5]]) 
}  

X = pd.concat(df) 

現在,您可以在值從DataFrame,例如執行PCA

pca = PCA(n_components=5) 
pca.fit(X.values)