将numpy数组作为行添加到pandas中,并将string作为索引

时间:2018-06-07 15:50:17

标签: python pandas numpy

我列出了一系列图像名称和一个带有每个图像的形状(4096,)特征的numpy数组。

例如名称列表:

img_list = ['img1', 'img2', 'img3']

功能np.array

[array([0.        , 0.04688909, 0.05700445, ..., 0.        , 0.        ,
        0.        ], dtype=float32),
 array([0.        , 0.04688909, 0.05700445, ..., 0.        , 0.        ,
        0.        ], dtype=float32),
 array([0.03546982, 0.00310931, 0.        , ..., 0.        , 0.01513313,
        0.        ], dtype=float32)]

我想将它们添加到pandas数据框中,其中索引将是img名称,并且按列分列为1,如下所示:

    f_1 f_2 f_3 ... f_4094  f_4095  f_4096
img 

imgs列表中的索引与features数组相同,因此img [0]具有features [0]数组等等。

如何设法将它们合并为单个数据帧形状N x 4096?

谢谢!

1 个答案:

答案 0 :(得分:2)

IIUC:

pd.DataFrame(features, img_list).add_prefix('f_')

MCVE

img_list = ['img1', 'img2', 'img3']
features = [np.array([1, 2, 3]), np.array([4, 5, 6]), np.array([7, 8, 9])]

df = pd.DataFrame(features, img_list).add_prefix('f_')
df

      f_0  f_1  f_2
img1    1    2    3
img2    4    5    6
img3    7    8    9