Вы можете извлечь списки столбцов, а затем массив-ify, используя несколько методов ниже.
np.array(df['Value'].tolist())
array([[ 1, 2, 1],
[ 5, 4, 6],
[ 7, 20, 9]])
# np.vstack(df['Value'])
np.stack(df['Value'])
array([[ 1, 2, 1],
[ 5, 4, 6],
[ 7, 20, 9]])
Если списки имеют неравномерный размер, будет возвращен обычный 2D-массив с nans в пропущенных позициях.
df['Value'] = [[1, 2], [3], [4, 5, 6]]
df
ID Value
0 0 [1, 2]
1 1 [3]
2 2 [4, 5, 6]
# pd.DataFrame(df['Value'].tolist()).values # < v0.24
pd.DataFrame(df['Value'].tolist()).to_numpy() # v0.24+
array([[ 1., 2., nan],
[ 3., nan, nan],
[ 4., 5., 6.]])