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]