2017-08-30 110 views
2

我有一個列表,我想將它作爲一個行。我得到的最接近的是使用post。但是,我無法得到我的答案。將二維numpy陣列轉換爲數據幀行

例如可以說我有值的testarray

([[ 26.85406494], 
    [ 27.85406494], 
    [ 28.85406494], 
    [ 29.85406494], 
    [ 30.85406494], 
    [ 31.85406494], 
    [ 32.85406494], 
    [ 33.85406494], 
    [ 34.85406494], 
    [ 35.85406494], 
    [ 36.85406494], 
    [ 37.85406494], 
    [ 38.85406494], 
    [ 39.85406494], 
    [ 40.85406494], 
    [ 41.85406494]]) 

我需要一個像作爲pandas數據幀行就是這樣,

Row_value 
0 26.85406494 
1 27.85406494 
2 29.85406494 
... 

我嘗試以下,

df = pd.DataFrame({'Row_value':testarray}) 

我收到一個錯誤,

ValueError: If using all scalar values, you must pass an index

如何將這些值與索引一起傳遞?

回答

2

使用數據幀的構造函數只能通過參數列:

df = pd.DataFrame(a, columns=['a']) 
print (df) 
      a 
0 26.854065 
1 27.854065 
2 28.854065 
3 29.854065 
4 30.854065 
5 31.854065 
6 32.854065 
7 33.854065 
8 34.854065 
9 35.854065 
10 36.854065 
11 37.854065 
12 38.854065 
13 39.854065 
14 40.854065 
15 41.854065 
+2

不錯的方式與列! –

2

嘗試.reshape(-1,)

df = pd.DataFrame({'Row_value':testarray.reshape(-1,)}) 
df 

    Row_value 
0 26.854065 
1 27.854065 
2 28.854065 
3 29.854065 
4 30.854065 
5 31.854065 
6 32.854065 
7 33.854065 
8 34.854065 
9 35.854065 
10 36.854065 
11 37.854065 
12 38.854065 
13 39.854065 
14 40.854065 
15 41.854065 

它看起來像你的testarray是一個二維數組1列。將其轉換爲一維數組。


另一種方法是不通過一本字典,而是通過testarray原樣,像jezrael的答案。

+0

謝謝,我現在看到,當我有'重塑'時,我不必處理索引。 –

+1

我同意,我喜歡通過列與列:) –

+0

@ i.n.n.m嗯,是的。它很乾淨。 –