如何把一个3d numpy数组变成一个由numpy 1d数组组成的Pandas Dataframe ?

qzwqbdag  于 2022-12-25  发布在  其他
关注(0)|答案(1)|浏览(218)

我有一个numpy 3d数组。我想创建一个pandas Dataframe ,它的行数与数组第一维的大小相同,列数与第二维的大小相同。 Dataframe 的值应该是具有第三维大小的实际向量(numpy数组)。
比如我有一个大小为(2, 3, 5)的数组

>>> arr
array([[[ 1.,  1.,  1.,  1.,  1.],
        [ 0.,  0.,  0.,  0.,  0.],
        [ 1.,  2.,  3.,  4.,  6.]],

       [[ 0.,  0.,  0.,  0.,  0.],
        [11., 22., 33., 44., 66.],
        [ 0.,  0.,  0.,  0.,  0.]]])

我想把它转换成这个 Dataframe (并且使用原生numpy和/或pandas方法高效地完成此操作):

>>> df_arr
                        col0                            col1                       col2
0  [1.0, 1.0, 1.0, 1.0, 1.0]       [0.0, 0.0, 0.0, 0.0, 0.0]  [1.0, 2.0, 3.0, 4.0, 6.0]
1  [0.0, 0.0, 0.0, 0.0, 0.0]  [11.0, 22.0, 33.0, 44.0, 66.0]  [0.0, 0.0, 0.0, 0.0, 0.0]
iyr7buue

iyr7buue1#

pd.DataFrame.from_records工程:

pd.DataFrame.from_records(arr, columns=['col0', 'col1', 'col2'])
                        col0  ...                       col2
0  [1.0, 1.0, 1.0, 1.0, 1.0]  ...  [1.0, 2.0, 3.0, 4.0, 6.0]
1  [0.0, 0.0, 0.0, 0.0, 0.0]  ...  [0.0, 0.0, 0.0, 0.0, 0.0]

[2 rows x 3 columns]

相关问题