首页 > 解决方案 > 将列表项放在数据框的单独单元格中

问题描述

我有一个 numpy 数组列表,其中单个数组如下所示:

[array([[-0.8129685 ,  0.25563928,  0.5257286 , ...,  0.27218387,
        -0.09186438,  0.21530187]], dtype=float32), array([[-0.41776586, -0.03817111,  0.8204172 , ...,  0.16926236,
         0.1923414 ,  0.18040611]], dtype=float32), array([[-0.70996654, -0.03073553,  0.74552304, ...,  0.52257764,
        -0.1465849 , -0.38585848]], dtype=float32), array([[-1.0497763 , -0.05266491,  0.69915617, ...,  0.24170516,
         0.05062697,  0.29804927]], dtype=float32), array([[-0.70316374,  0.22170547,  0.47574154, ...,  0.52260965,
        -1.2310463 ,  0.431722  ]], dtype=float32), array([[-0.72455716, -0.05363848,  0.8941862 , ...,  0.05577775,
         0.14195909, -0.0771163 ]], dtype=float32), array([[-0.45597026,  0.31754223,  0.72948986, ...,  0.40124443,
        -0.52186936,  0.54976016]], dtype=float32), array([[-0.64960825, -0.02850961,  0.79791856, ...,  0.26005346,
        -0.32073644, -0.1945045 ]], dtype=float32), array([[-0.6557834 ,  0.1716764 ,  0.938828  , ...,  1.0849419 ,
        -0.12322052, -0.38584358]], dtype=float32), array([[-0.41776586, -0.03817111,  0.8204172 , ...,  0.16926236,
         0.1923414 ,  0.18040611]], dtype=float32)]

我想将数组的项目复制到数据框。我将这个数组列表作为变量embeddings传递给第四行的数据框。

这是我得到的代码,但我不知道如何为列表中的每个项目执行此操作...

def createDataFrame(embeddings, data):
    sentences = data['Interest_Name']
    sentences_df = pd.DataFrame(sentences)
    embeddings_df = pd.DataFrame(embeddings) ### don't know how to get the list of arrays right :/
    print(embeddings_df)
    dataframe = sentences_df.join(embeddings_df)

    return dataframe

dataframe = createDataFrame(embeddings, data)

提前致谢!

标签: pythonarrayspandasnumpydataframe

解决方案


emdeddings 是列的名称?数据给出列表?每个 numpy 数组都是数据框中的一列?如果我是对的,那么试试这个:

# your given list of arrays
arr = [np.random.rand(5, 1), np.random.rand(5, 1), np.random.rand(5, 1)]
embeddings = list('abc')

arr = np.array(arr)
arr = reshape(3, 5).T
df = pd.DataFrame(arr, columns=embeddings)

推荐阅读