У меня есть result
, который является списком ndarrays. Я пытаюсь создать 3D-кадр данных панд в цикле следующим образом:
col_names = list()
col_names += [('var%d(t)' % (j + 1)) for j in range(138)]
for b in range(0, B):
result = get_new_results()
df1 = pd.DataFrame(data=result, columns=col_names)
df = pd.concat([df, df1], axis=0)
Но это добавит каждый отдельный результат в виде новых строк в конце df
. Поэтому, если каждый result
имеет 112 ndarrays формы (138,), аналогично таблице размером 112x138, мой df
будет иметь форму = (448, 138) после 4 итераций b
(448 = 112 * 4). ). И индексы строк изменятся с 0 на 111 и снова будут сброшены с 0 до 112. Значение df.ndim
равно 2. Но мне нужно создать трехмерный кадр данных следующим образом:
0 var1(t) -0.863838, ... # 112 different values for var1(t)
var2(t) 0.299368, ... # 112 different values for var2(t)
... ...
var137(t) 0.299368, ... # 112 different values for var137(t)
1 var1(t) 0.206053, ... # 112 different values for var1(t)
var2(t) 1.063327, ... # 112 different values for var2(t)
... ...
var137(t) 0.299368, ... # 112 different values for var137(t)
2 var1(t) -2.213588, ... # 112 different values for var1(t)
var2(t) -0.251905, ... # 112 different values for var2(t)
... ...
var137(t) 0.299368, ... # 112 different values for var137(t)
...
B var1(t) 0.408204, ... # 112 different values for var1(t)
var2(t) 1.266143, ... # 112 different values for var2(t)
... ...
var137(t) 0.299368, ... # 112 different values for var137(t)
Я считаю, что могу создать его, используя pd.MultiIndex
, но я не смог придумать разумного решения. Может кто-нибудь, пожалуйста, помогите мне исправить это?