python – 将numpy数组作为列添加到Pandas数据帧

我有一个形状(X,Y)的pandas数据框对象,如下所示:

[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]

和形状(X,Z)的numpy稀疏矩阵(CSC),看起来像这样

[[0, 1, 0],
[0, 0, 1],
[1, 0, 0]]

如何从矩阵中将内容添加到新的命名列中的数据框,以使数据框最终如下所示:

[[1, 2, 3, [0, 1, 0]],
[4, 5, 6, [0, 0, 1]],
[7, 8, 9, [1, 0, 0]]]

注意数据框现在具有形状(X,Y 1),矩阵中的行是数据帧中的元素.

import numpy as np
import pandas as pd
import scipy.sparse as sparse

df = pd.DataFrame(np.arange(1,10).reshape(3,3))
arr = sparse.coo_matrix(([1,1,1], ([0,1,2], [1,2,0])), shape=(3,3))
df['newcol'] = arr.toarray().tolist()
print(df)

产量

   0  1  2     newcol
0  1  2  3  [0, 1, 0]
1  4  5  6  [0, 0, 1]
2  7  8  9  [1, 0, 0]
翻译自:http://stackoverflow.com/questions/18646076/add-numpy-array-as-column-to-pandas-data-frame

转载注明原文:python – 将numpy数组作为列添加到Pandas数据帧