8

I have a list of list that I would like to make it as a row. The closest I got was using this post. However, I could not get my answer.

For example lets say I have a testarray of values,

([[ 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]])

I need like as a pandas DataFrame row like this,

  Row_value
0 26.85406494
1 27.85406494
2 29.85406494
...

I tried the following,

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

I get an error,

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

How can I pass those values with an index?

cs95
  • 379,657
  • 97
  • 704
  • 746
i.n.n.m
  • 2,936
  • 7
  • 27
  • 51

2 Answers2

11

Use DataFrame constructor only with parameter columns:

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
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252
4

Try a .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

It looks like your testarray is a 2D array with 1 column. Convert it to a 1D array.


The alternative is to not pass a dictionary, but instead pass testarray as is, like in jezrael's answer.

cs95
  • 379,657
  • 97
  • 704
  • 746