PandasMerge将多个列值合并到NumPy数组

2024-06-02 08:49:51 发布

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

我需要为文本数据集提取单词嵌入。由于Elmo需要花费大量的时间来处理一个庞大的数据集,因此我尝试通过将其划分为批并将值存储在CSV文件中来并行化该过程。现在我有了一个数据帧,它由大约1024列组成,其中包含单词embeddings

数据帧示例:

^{tb1}$

我需要做的是将值按行组合到一列中,这需要是一个Numpy数组而不是一个列表。
这就是我需要它的样子:
第4列中的值必须是NumPy数组类型

^{tb2}$

到目前为止,我所尝试的:

np.array(DF.iloc[:,0:1023].values.tolist())

但这会引发以下错误:

ValueError: Wrong number of items passed 1023, placement implies 1

我该怎么做?任何建议都会有帮助。提前谢谢


Tags: 文件csv数据文本numpy示例列表过程
3条回答

to_numpy在轴1上尝试apply

import pandas as pd

df = pd.DataFrame({'Col 1': {0: 0.1, 1: 0.2},
                   'Col 2': {0: 0.25, 1: 0.3},
                   'Col 3': {0: 0.4, 1: -0.1}})

df['Col 4'] = df.apply(lambda s: s.to_numpy(), axis=1)

print(df)

df

   Col 1  Col 2  Col 3             Col 4
0    0.1   0.25    0.4  [0.1, 0.25, 0.4]
1    0.2   0.30   -0.1  [0.2, 0.3, -0.1]

您已接近,转换为numpy数组后需要.tolist()

df['Col 4'] = np.array(df.to_numpy()).tolist()
print (df)
   Col 1  Col 2  Col 3             Col 4
0    0.1   0.25    0.4  [0.1, 0.25, 0.4]
1    0.2   0.30   -0.1  [0.2, 0.3, -0.1]

对于您的数据:

DF['Col 4'] = np.array(DF.iloc[:,0:1023].to_numpy().tolist())
import pandas as pd
import numpy as np

您可以使用apply()方法和array()方法:

df['Col4']=np.array(df.apply(np.array,1))

df的输出:

   Col 1  Col 2  Col 3             Col 4
0    0.1   0.25    0.4  [0.1, 0.25, 0.4]
1    0.2   0.30   -0.1  [0.2, 0.3, -0.1]

相关问题 更多 >