Python 将两个数据帧组合成一个三维np数组

Python 将两个数据帧组合成一个三维np数组,python,arrays,pandas,numpy,dataframe,Python,Arrays,Pandas,Numpy,Dataframe,我需要将两个熊猫数据帧合并成一个三维np数组。例如,这些数据帧 df1 = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4,5,6]}) df2 = pd.DataFrame({'col1': [10, 20, 30], 'col2': [40,50,60]}) 应与np.array[[1,10]、[2,20]、[3,30]、[[4,40]、[5,50]、[6,60]][/code>相关 我最初的想法是使用以下公式压缩数据帧: dfnew=df1.co

我需要将两个熊猫数据帧合并成一个三维np数组。例如,这些数据帧

df1 = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4,5,6]})

df2 = pd.DataFrame({'col1': [10, 20, 30], 'col2': [40,50,60]})
应与np.array
[[1,10]、[2,20]、[3,30]、[[4,40]、[5,50]、[6,60]][/code>相关

我最初的想法是使用以下公式压缩数据帧:

dfnew=df1.copy()

for i in range(len(dfnew.columns)):

dfnew[dfnew.columns[i]]=list(map(list, zip(df1.iloc[:,i],df2.iloc[:,i])))
不幸的是,这不起作用,因为它创建了一个二维数组,其中包含一个列表:

array([[list([1, 10]), list([4, 40])],
       [list([2, 20]), list([5, 50])],
       [list([3, 30]), list([6, 60])]], dtype=object)

np.array(dfnew).shape -> (3,2)
由于数组的形状不是三维的,我不能在下面的过程中使用数组

你能帮我把二维数组转换成三维数组吗?或者你有其他方法解决这个问题吗


多谢各位

这应该能奏效

result = np.array([np.transpose(i) for i in zip(df1.to_numpy().T, df2.to_numpy().T)])