2015-04-20 38 views
-2

例如,我有這樣一個CSV文件:如何將csv文件讀入Python 2d數組?

| a | b | c | 
    1 2 3 
    4 5 6 
    7 8 9 
    10 11 12 

我需要建立從這個CSV文件numpy.ndarray。對於這個例子,它的大小應該是(2,3)。

和應該是這樣的

5(1+4), 7(2+5), 9(3+6) 
17, 19, 21 

薩姆在其自己的行(每2行)

熊貓,可以使用numpy的或與之相似的庫。其實我正在用熊貓讀csv,但之後我無法做到。

任何幫助appriciated。

+0

我不明白輸入csv文件和「應該是這樣的」格式之間的模式?也許我錯過了一些東西,但我沒有看到信件。 –

+0

例如,我讀了csv文件。我必須在它自己的內部每兩行進行總和。現在更清楚了嗎?而且我也編輯我的問題,也許現在它更容易理解 –

回答

2

如果您使用pandas,你可以使用groupby

>>> df 
    a b c 
0 1 2 3 
1 4 5 6 
2 7 8 9 
3 10 11 12 
>>> df.groupby(np.arange(len(df))//2).sum() 
    a b c 
0 5 7 9 
1 17 19 21 

這工作,因爲在一些groupby可以組你通過它,不只是一個列名,在這種情況下,我們通過一個數組正確的組號:

>>> np.arange(len(df)) 
array([0, 1, 2, 3]) 
>>> np.arange(len(df))//2 
array([0, 0, 1, 1]) 

如果你真的需要一個ndarray,而不是一個數據幀,可以通過.values訪問。

>>> df.groupby(np.arange(len(df))//2).sum().values 
array([[ 5, 7, 9], 
     [17, 19, 21]], dtype=int64) 
+0

實際上,我將使用它在scikit線性迴歸和OLS,所以我會檢查數據框是否工作,但無論如何謝謝 –