我有一个形状(X,Y)的Pandas数据框对象,如下所示:
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
形状(X,Z)的numpy稀疏矩阵(CSC)看起来像这样
[[0, 1, 0],
[0, 0, 1],
[1, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
如何将矩阵中的内容添加到新命名列中的数据框中,以使数据框最终如下:
[[1, 2, 3, [0, 1, 0]],
[4, 5, 6, [0, 0, 1]],
[7, 8, 9, [1, 0, 0]]]
Run Code Online (Sandbox Code Playgroud)
请注意,数据框现在具有形状(X,Y + 1),矩阵中的行是数据框中的元素.
我有一个数据框,我想在其中存储'raw' numpy.array:
df['COL_ARRAY'] = df.apply(lambda r: np.array(do_something_with_r), axis=1)
Run Code Online (Sandbox Code Playgroud)
但似乎pandas试图'解包'numpy.array.
有解决方法吗?除了使用包装器(参见下面的编辑)?
我试过reduce=False没有成功.
编辑
这是有效的,但是我必须使用'dummy' Data类来包围数组,这是不令人满意的并且不是很优雅.
class Data:
def __init__(self, v):
self.v = v
meas = pd.read_excel(DATA_FILE)
meas['DATA'] = meas.apply(
lambda r: Data(np.array(pd.read_csv(r['filename'])))),
axis=1
)
Run Code Online (Sandbox Code Playgroud)