【问题标题】:Convert 3d numpy array to 1 column pandas df with 2d arrays使用 2d 数组将 3d numpy 数组转换为 1 列 pandas df
【发布时间】:2021-01-07 11:03:56
【问题描述】:

我会将 3d numpy 数组转换为具有 1 列的 pandas 数据框,由 2d numpy 数组组成。

具体例子:

np_array = np.zeros((10,3,5))
print(np_array.shape) # (10, 3, 5)

所以我想从这个 numpy 数组中创建一个包含 1 列的数据框,它有 10 行,每行都有一个形状为 (3,5) 的项目。

尝试将其按原样转换为 pd.DataFrame(np_array) 会抛出 ValueError: Must pass 2-d input 错误。

谢谢!

【问题讨论】:

  • each row has an item of the shape (3,5) 是什么意思?你能提供所需dataframe的结构吗?

标签: python arrays pandas numpy


【解决方案1】:

也许是列表理解?

import numpy as np
import pandas as pd
np_array = np.zeros((10,3,5))    
pd.DataFrame(data = [[x] for x in np_array])

【讨论】:

    【解决方案2】:

    你可以这样做,用 dict 初始化数据框来 decalre 到底是什么 a 列,然后将 np.array 的顶层转换为列表(将其转换为二维数组列表):

    >>>pd.DataFrame(dict(rows = list(np_array)))
        rows
    0   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    1   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    2   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    3   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    4   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    5   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    6   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    7   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    8   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    9   [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0....
    

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2019-10-31
      • 1970-01-01
      • 2017-07-26
      • 2011-05-19
      • 2017-07-27
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多