首页 > 解决方案 > 将 3d 数组存储在 pandas 数据框列中

问题描述

我想在数据框的列中存储一个 3D-numpy 数组。

df = pd.DataFrame({"nodes": list(range(1, 4))})
df = df.set_index("nodes")

df[0] = list(range(1, 6, 2))
df[1] = [10,20,30]

>>> df
            0       1
nodes              
1           1      10
2           3      20
3           5      30

numpy 数组的示例:

test = np.array([[[1,2,3],
                  [4,5,6]],
                 [[10,20,30],
                  [40,50,60]],
                 [[0,1,0],
                  [-1,-1,-1]]])

我想要的是:

>>> df

        0        1                          2
nodes
1       1       10          [[1,2,3],[4,5,6]]
2       3       20    [[10,20,30],[40,50,60]]
3       5       30       [[0,1,0],[-1,-1,-1]]

如何将 3d 数组添加到现有数据框的列中?

标签: pythonpandasnumpy

解决方案


用这个:

df[2] = test.tolist()

输出:

    0   1   2
nodes           
1   1   10  [[1, 2, 3], [4, 5, 6]]
2   3   20  [[10, 20, 30], [40, 50, 60]]
3   5   30  [[0, 1, 0], [-1, -1, -1]]

推荐阅读