Almacenar numpy.array en celdas de un Pandas.DataFrame

Tengo un dataframe en el que me gustaría almacenar numpy.array ‘raw’:

 df['COL_ARRAY'] = df.apply(lambda r: np.array(do_something_with_r), axis=1) 

pero parece que los pandas intentan ‘desempacar’ el numpy.array.

¿Hay una solución? ¿Aparte de usar una envoltura (ver edición abajo)?

Intenté reduce=False sin éxito.

EDITAR

Esto funciona, pero tengo que usar la clase de Data ‘ficticia’ para envolver la matriz, lo cual no es satisfactorio y no es muy elegante.

 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 ) 

Use una envoltura alrededor de la matriz numpy, es decir, pase la matriz numpy como lista

 a = np.array([5, 6, 7, 8]) df = pd.DataFrame({"a": [a]}) 

Salida:

              una
 0 [5, 6, 7, 8]

O puede usar apply(np.array) creando las tuplas, es decir, si tiene un dataframe

 df = pd.DataFrame({'id': [1, 2, 3, 4], 'a': ['on', 'on', 'off', 'off'], 'b': ['on', 'off', 'on', 'off']}) df['new'] = df.apply(lambda r: tuple(r), axis=1).apply(np.array) 

Salida:

      ab id nuevo
 0 en 1 [en, en, 1]
 1 encendido apagado 2 [encendido, apagado, 2]
 2 off en 3 [off, on, 3]
 3 off off 4 [off, off, 4]
 df['new'][0] 

Salida:

 array(['on', 'on', '1'], dtype=' 

Puede ajustar los np.array datos del Marco de datos entre corchetes para mantener el np.array en cada celda:

 one_d_array = np.array([1,2,3]) two_d_array = one_d_array*one_d_array[:,np.newaxis] two_d_array array([[1, 2, 3], [2, 4, 6], [3, 6, 9]]) pd.DataFrame([ [one_d_array], [two_d_array] ]) 0 0 [1, 2, 3] 1 [[1, 2, 3], [2, 4, 6], [3, 6, 9]]