Как хранить массивы numpy в столбце Pandas dataframe?

Можно ли хранить произвольные массивы numpy в качестве значений одного столбца в фрейме данных Pandas?

Массивы все двумерные, и я намереваюсь использовать их для вычисления значений для других столбцов в одном и том же фрейме.

Чтобы обеспечить некоторый контекст того, что я пытаюсь сделать здесь:

Каждый массив является матрицей смежности некоторой сети, и для каждой сети я хочу рассчитать ее различные характеристики (например, плотность, центральности, коэффициент кластеризации и т.д.), которые на самом деле являются другими столбцами в одном и том же фрейме.

Ответ 1

Сохраните их как элементы, которые вы бы сделали для любых других данных:

import numpy as np
import pandas as pd
a = np.arange(10).reshape(2,5)
b = np.arange(10, 20).reshape(2,5)
pd.DataFrame({'foo':[42,51], 'arr':[a,b]})
Out[10]: 
                                            arr  foo
0            [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]   42
1  [[10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]   51

Обратите внимание, что то, что вы пытаетесь сделать, больше использует Panel.

Ответ 2

Что значит хранить произвольные массивы numpy как значения столбца в фрейме данных Pandas?

Что-то вроде этого?

import numpy as np
import pandas as pd


x = np.random.randn(50, 25)
random_frame = pd.DataFrame(x)

Это будет хранить массив x в DataFrame, где имена столбцов равны 0, 1, 2, 3... Не могли бы вы уточнить? Я думаю, что это больше комментарий, но я не знаю, могу ли я еще прокомментировать.