【问题标题】:How to put 3D and 2D arrays into pandas DataFrame如何将 3D 和 2D 数组放入 pandas DataFrame
【发布时间】:2020-08-26 08:50:43
【问题描述】:

我在将 3D 和 2D 数组放入数据帧时遇到问题。

  • 第一个数组是(2905, 150, 150);
  • 第二个数组是 (2905, 3)

我想要一个包含 2905 行的数据框,其中对于每个项目,第 1 列的 2D (150,150) 数组和第 2 列的 1D 数组 (3)。

使用一个较小的示例(我的 3D 数组为 (3,2,2),我的 2D 数组为 (3,2)),但目的相同:

a = [[[2,6],[1,95]],[[88,42],[21,90]],[[54,78],[47,70]]]
a = np.array(a)

b = [[1,0],[0,0],[0,1]]
b = np.array(b)

3D (a) and 2D (b) arrays

我想要这样的结果: Expected result

我想找到一种方法可以迭代地做到这一点。有人有什么想法吗?

非常感谢!

【问题讨论】:

  • 我在将 3D 和 2D 数组放入数据帧时遇到问题。 有什么问题?如果不将列表转换为数组,pd.DataFrame({"col_1": a, "col_2": b}) 似乎可以正常工作。另外,迭代是什么意思?

标签: python pandas numpy multidimensional-array iteration


【解决方案1】:

这很容易做到

pd.DataFrame(zip(a,b))

结果

          0                    1
0   [[2, 6], [1, 95]]       [1, 0]
1   [[88, 42], [21, 90]]    [0, 0]
2   [[54, 78], [47, 70]]    [0, 1]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多