猿问

如何将嵌套数组中的每个数组转换为数据框中的行?

我想将嵌套数组中的每个单独数组转换为数据帧中的每一行。例如:嵌套数组示例如下。如何在数据框中的行中的 [[... ]] 中创建每个数字?有许多嵌套数组,如下所示。任何帮助,将不胜感激。谢谢。为了让事情更简单,我想将每个数组创建为数据框中的行。第一个数组的示例需要在数据帧中像这样布置 * -0.14091441, 0.02556057, 0.10425788, ..., -0.03699904, 0.00503982, 0.08761989 到目前为止,我已经尝试过:



pd.concat([pd.DataFrame(arrays_list[i][0]) for i in range(len(arrays_list))]).reset_index(drop=False)

arrays_list 是我的嵌套数组。


[array([[[-0.14091441,  0.02556057,  0.10425788, ..., -0.03699904,

       0.00503982,  0.08761989]],


    [[-0.16227441,  0.03150389,  0.06440173, ..., -0.10543424,

       0.05987305,  0.04117104]],


    [[-0.11423473,  0.03741207,  0.0783961 , ..., -0.16773996,

       0.06566695,  0.0683976 ]],


    ...,


    [[-0.13789459,  0.05840103,  0.09803487, ..., -0.09256409,

       0.01833008,  0.08413954]],


    [[-0.12652887,  0.03683193,  0.06100509, ..., -0.06188103,

       0.00915053,  0.09518969]],


    [[-0.19781192,  0.05750425,  0.14811654, ..., -0.10550601,

       0.05405622,  0.13771409]]]),


 array([[[-0.0375578 ,  0.16006446,  0.07978896, ..., -0.0883253 ,

       0.0057608 ,  0.07953031]],


    [[ 0.00282089,  0.18854009,  0.01686837, ..., -0.02981209,

      -0.01220972,  0.02810074]],


    [[ 0.0333602 ,  0.21895081,  0.05255894, ..., -0.01882036,

      -0.03316848,  0.02506595]],


    ...,


    [[-0.02498044,  0.17067145,  0.03956907, ..., -0.00617604,

       0.01254308,  0.03375499]],


    [[ 0.0333602 ,  0.21895081,  0.05255894, ..., -0.01882036,

      -0.03316848,  0.02506595]],


    [[ 0.01105822,  0.20526624,  0.05087842, ..., -0.0442748 ,

      -0.08184794,  0.04356682]]]),

 array([[[-1.16298698e-01,  6.60857707e-02,  4.37349118e-02, ...,

       5.65935597e-02,  1.17720775e-01,  4.68457118e-02]],


    [[-1.70329705e-01,  7.15664029e-02,  2.13463139e-02, ...,

       8.40441436e-02,  3.38792875e-02, -9.66352411e-04]],


    [[-1.38925180e-01,  6.48617744e-02,  7.50765130e-02, ...,

       3.60708833e-02,  9.37591046e-02,  3.88324559e-02]],


撒科打诨
浏览 123回答 1
1回答

DIEA

以您提供的可重现示例为例,假设您想要一个数据框作为结果(a、b 和 c 具有相同的形状)。我首先使用numpy.stack()将数组列表中的所有数组作为一个数组垂直堆叠。然后我会通过切出形状 1 的中间维度来删除它。然后我调用pandas.DataFrame()构造函数,你应该得到你的结果。df = pd.DataFrame(np.vstack(obj)[:,0,:])
随时随地看视频慕课网APP

相关分类

Python
我要回答