2016-04-02 107 views
1

我在keras庫和Python中確實是新手。我試圖使用熊貓導入一個excel文件,並使用as_matrix()函數將其轉換爲numpy.ndarray。但它會錯誤地讀取我的文件。就像我在Excel文件中有一個90x1049的數據集。但是當我試圖將其轉換爲numpy數組時,它將我的數據讀取爲89x1049。我使用下面的代碼,這是行不通的:如何使用熊貓將excel文件數據轉換爲numpy數組?

training_data_x = pd.read_excel("/home/workstation/ANN/new_input.xlsx") 
X_train = training_data_x.as_matrix() 
+0

我猜你的excel文件沒有標題行作爲第一行。你可以包含一個結果'pandas.DataFrame'的樣本嗎? –

回答

1

可能發生的事情是您的Excel文件沒有標題行等pandas.read_excel消耗你的第一個數據行本身。

我試圖創建包含

1 2 3 
2 3 4 
3 4 5 
4 5 6 
5 6 7 
6 7 8 
7 8 9 
8 9 10 
9 10 11 
10 11 12 

閱讀一個XLSX,導致

In [3]: df = pandas.read_excel('test.xlsx') 

In [4]: df 
Out[4]: 
    1 2 3 
0 2 3 4 
1 3 4 5 
2 4 5 6 
3 5 6 7 
4 6 7 8 
5 7 8 9 
6 8 9 10 
7 9 10 11 
8 10 11 12 

如可以看到的,第一數據行已被用作標籤列。

爲了避免將第一個數據行用作標題,請將headers=None傳遞到read_excel。有趣的是,documentation沒有提及這個用法:

INT,整數的列表,默認爲0

行(0索引)以用於解析數據框的列標籤。如果通過整數列表中的那些行位置將被合併成一個多指標

0

如果沒有標題,請嘗試以下操作:

training_data = pd.read_excel("/home/workstation/ANN/new_input.xlsx", header=None) 

X_train = training_data_x.as_matrix() 

參見從previous question答案。

相關問題