matrices manejo insertar eliminar datos data crear columna agregar python numpy pandas

insertar - manejo de data frame python



Agregue matriz numpy como columna al marco de datos Pandas (2)

Considere usar una estructura de datos dimensional más alta (un Panel ), en lugar de almacenar una matriz en su columna:

In [11]: p = pd.Panel({''df'': df, ''csc'': csc}) In [12]: p.df Out[12]: 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9 In [13]: p.csc Out[13]: 0 1 2 0 0 1 0 1 0 0 1 2 1 0 0

Mire las secciones transversales, etc., etc.

In [14]: p.xs(0) Out[14]: csc df 0 0 1 1 1 2 2 0 3

Panel .

Tengo un objeto de forma de marco de datos de Pandas (X, Y) que se ve así:

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

y una matriz escasa numpy (CSC) de forma (X, Z) que se parece a esto

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

¿Cómo puedo agregar el contenido de la matriz al marco de datos en una nueva columna nombrada de modo que el marco de datos termine así?

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

Observe que el marco de datos ahora tiene forma (X, Y + 1) y las filas de la matriz son elementos en el marco de datos.


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)

rendimientos

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]