为了账号安全,请及时绑定邮箱和手机立即绑定

将两个 Pandas DataFrames 组合成一个三维 np.array

将两个 Pandas DataFrames 组合成一个三维 np.array

婷婷同学_ 2022-12-20 16:45:37
我需要将两个 pandas DataFrame 连接到一个三维 np.array。例如这些数据框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]]]。我最初的想法是使用以下公式压缩 DataFrame: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)由于数组的形状不是三维的,所以我不能在下面的过程中使用数组。你能帮我把二维数组转换成三维数组吗?或者你有其他解决问题的方法吗?非常感谢你!
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这应该可以解决问题

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


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信