2015-02-23 293 views
1

我正在嘗試將.csv文件導入scikit-learn。我知道,我可以用大熊貓,但不知道如何使用我的 數據集看起來像這樣使用sklearn將.csv文件加載到Python中

0.9731 0.9695 0.9857 0.9909 0.9448 0.9367 0.9976 0.9672 
0.9723 0.9767 0.9767 0.9656 0.9625 0.9589 0.9429 0.9319 
0.9858 0.9886 0.9883 0.9784 0.9729 0.9683 0.9567 0.9428 
0.9834 0.9838 0.9886 0.9782 0.9729 0.9629 0.9849 0.9456 

我在Windows上運行。我是sklearn的新手,我能夠輕鬆加載內置數據集並對其進行處理,但無法加載自己的數據集。

+0

據我所知,與大熊貓對象scikit學習,所以用大熊貓。 – Phlya 2015-02-23 13:28:09

回答

0

忽略io.StringIO位這僅僅是一個傳遞一個字符串作爲文件緩存的方式,你可以加載此輕鬆調用read_csv,並通過PARAMS header=Nonesep='\s+'

In [3]: 

import io 
import pandas as pd 
temp = '''0.9731 0.9695 0.9857 0.9909 0.9448 0.9367 0.9976 0.9672 
0.9723 0.9767 0.9767 0.9656 0.9625 0.9589 0.9429 0.9319 
0.9858 0.9886 0.9883 0.9784 0.9729 0.9683 0.9567 0.9428 
0.9834 0.9838 0.9886 0.9782 0.9729 0.9629 0.9849 0.9456''' 
df = pd.read_csv(io.StringIO(temp), header=None, sep='\s+') 
df 
Out[3]: 
     0  1  2  3  4  5  6  7 
0 0.9731 0.9695 0.9857 0.9909 0.9448 0.9367 0.9976 0.9672 
1 0.9723 0.9767 0.9767 0.9656 0.9625 0.9589 0.9429 0.9319 
2 0.9858 0.9886 0.9883 0.9784 0.9729 0.9683 0.9567 0.9428 
3 0.9834 0.9838 0.9886 0.9782 0.9729 0.9629 0.9849 0.9456 

我不知道這些是什麼值是但你可以直接指定列:df.columns = [some_col_list]或通過一個列表read_csvnames=some_col_list

要傳遞特定的列sklearn只是索引他們例如如果您的列名稱爲col1....coln,那麼您可以撥打clf.fit(df['col1'], df['coln']),假設col1和coln分別是您的X和y列。

+0

非常感謝你的回答,我想補充一點,每當我嘗試添加一個csv文件,雖然它存在,程序,它說該文件不存在。我嘗試了下面的代碼,但它會拋出IOError好心幫助>>> import pandas as pd >>> from sklearn.ensemble import ExtraTreesClassifier >>> from sklearn.cross_validation import cross_val_score >>> train_df = pd.read_csv(「attendees1 .csv「)它顯示」IOError:文件attendees1.csv不存在「 – Sarah 2015-02-23 13:38:38

+1

如果這回答了你的問題,那麼你可以接受它,在我的答案的左上角會有一個空的刻度標記,你會發現很多例子代碼顯示如何使用sklearn使用熊貓 – EdChum 2015-02-23 13:38:42

+0

@Sarah你必須解釋一下,它可能是你的文件路徑格式不正確,一般你應該使用forwards斜槓例如''c:/ data/myData.csv''如果你使用反斜槓,那麼你必須''c:\\ data \\ myData.csv''或傳遞一個原始字符串:'r'c:\ data \ myData.csv'' – EdChum 2015-02-23 13:40:23

相關問題