Как хранить массивы 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... Не могли бы вы уточнить? Я думаю, что это больше комментарий, но я не знаю, могу ли я еще прокомментировать.