2017-08-30 111 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嗯,是的。它很干净。 –