【问题标题】:Converting a 2D numpy array to one Dataframe row将 2D numpy 数组转换为一个 Dataframe 行
【发布时间】:2021-11-29 01:24:07
【问题描述】:

我有一个 2D numpy 数组,如下所示:

[[ 0.05269444 -0.00216448]
 [ 0.03842859 -0.02420946]
 [ 0.01363366 -0.00171811]
 [ 0.02662168  0.00833145]
 [ 0.00651133 -0.03832898]
 [-0.05450631  0.03389544]
 [ 0.01026101 -0.00026777]
 [-0.01429901 -0.01723299]
 [ 0.02745928 -0.03982039]
 [ 0.04354913 -0.03573825]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]]

我基本上只是想把它作为一个单一的行放在熊猫数据框中。像这样:

[[ 0.05269444 -0.00216448][ 0.03842859 -0.02420946] .....
[[ 0.05269444 -0.00216448][ 0.03842859 -0.02420946] .....
[[ 0.05269444 -0.00216448][ 0.03842859 -0.02420946] .....
[[ 0.05269444 -0.00216448][ 0.03842859 -0.02420946] .....
.....

我尝试过其他方法,例如:

some_df.loc[len(some_df)] = 2D_numpy_array

但我只是得到这个错误:

Data must be 1-dimensional

【问题讨论】:

  • 你可以重塑它
  • 输出看起来不正确。它不是一个单一的数组,而是无数个独立的数组。

标签: python arrays pandas numpy


【解决方案1】:

首先要将python语法中的数组元素用逗号(,)隔开,

所以首先要让这个工作而不是这个:

[[ 0.05269444 -0.00216448]
 [ 0.03842859 -0.02420946]
 [ 0.01363366 -0.00171811]
 [ 0.02662168  0.00833145]
 [ 0.00651133 -0.03832898]
 [-0.05450631  0.03389544]
 [ 0.01026101 -0.00026777]
 [-0.01429901 -0.01723299]
 [ 0.02745928 -0.03982039]
 [ 0.04354913 -0.03573825]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]
 [ 0.          0.        ]]

使用这个:

[[ 0.05269444, -0.00216448],
 [ 0.03842859, -0.02420946],
 [ 0.01363366, -0.00171811],
 [ 0.02662168,  0.00833145],
 [ 0.00651133, -0.03832898],
 [-0.05450631,  0.03389544],
 [ 0.01026101, -0.00026777],
 [-0.01429901, -0.01723299],
 [ 0.02745928, -0.03982039],
 [ 0.04354913, -0.03573825],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ]]

好的,其次 当你说

x = pandas.DataFrame([[ 0.05269444, -0.00216448],
 [ 0.03842859, -0.02420946],
 [ 0.01363366, -0.00171811],
 [ 0.02662168,  0.00833145],
 [ 0.00651133, -0.03832898],
 [-0.05450631,  0.03389544],
 [ 0.01026101, -0.00026777],
 [-0.01429901, -0.01723299],
 [ 0.02745928, -0.03982039],
 [ 0.04354913, -0.03573825],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ],
 [ 0. ,          0.        ]])

然后 你试图让

x[len(x)] = 2d_nparray

而不是x[len(x)] write x[len(x) - 1] 因为 len(x) 是数据帧的长度,但最后一个索引 数据帧是 len(x) - 1(所以你访问的是未初始化的内存)

和 当你说x[len(x) - 1] = 2d_nparray 你说x[len(x) - 1] 这是你试图转换为 2d_nparray 的一维数组 这是图书馆不允许的 并使其工作 你需要重塑 2d_nparray 的形状与x[len(x)-1] 所以对于这个例子x[len(x)-1] = 2d_array.reshape((2,)) 为什么2? 因为x[len(x)-1].shape() = (2,) 如果x[len(x) - 1] 和 2d_array 中的元素数量不相等,这将不起作用。

【讨论】:

  • 他显示的是数组,而不是列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 2013-06-30
  • 2021-12-29
  • 2018-02-08
  • 2012-06-08
  • 2022-01-17
相关资源
最近更新 更多