将2D numpy数组转换为数据帧行

2024-09-28 13:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,我想把它列成一行。我最接近的是用这个post。但是,我没有得到我的答案。

例如,假设我有一个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]])

我需要像这样的数据帧行

  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

如何使用索引传递这些值?


Tags: 数据答案dataframedf列表ifvalue错误
2条回答

仅对参数列使用DataFrame构造函数:

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

尝试.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列的二维数组。将其转换为1D数组。


另一种选择是不传递字典,而是按原样传递testarray,就像耶斯雷尔的答案一样。

相关问题 更多 >

    热门问题