Прежде чем я начну, в вашем вопросе есть исправление: «Каждая ячейка в вашем фрейме данных представляет собой список из 20 элементов»
import pandas as pd
import numpy as np
df = pd.DataFrame({0: [[2, 3, 4], [1,2,3], [4, 5,6]], 1: [[2, 3, 4], [1,2,3],
[4, 5,6]]})
def itemExploder(df):
df = df.to_numpy()
dim1, dim2, dim3 = len(df), len(df[0]), len(df[0][0])
df2 = np.zeros((dim1, dim2, dim3), dtype=int)
for r in range(dim1):
for c in range(dim2):
for i,item in enumerate(df[r][c]):
df2[r][c][i] = item
print(df2.shape)
return df2
newDf = itemExploder(df)
Эта функция предполагает, что у вас одинаковое количество элементов (20) в каждой ячейке.