如何将数组数组转换为简单数组?

时间:2019-01-25 09:54:51

标签: python arrays dataframe

我试图将不同类型的列连接起来以创建我的数据框,但是每个获得的数据框元素都是这样的:

[[259200.0] [259200.0] [259200.0]..., [260099.98] [260099.98] [260099.98]]

表示我的DF是矩阵,因此每个DF [i,j]都类似于上面的代码。

但是我想得到所有子数组的单个数组,如下所示:

[259200.0 259200.0 259200.0 ... 260099.98 260099.98 260099.98]

我将添加图片以阐明我的观点:

Here is my final DF

实际上,我是通过下一行创建此表的:

  `features2[i]=pd.DataFrame([[label[i], max[i], mean[i], Cost[1:]])#
   mydataset1=pd.concat([mydataset1,features2[i]], axis=0)`

“成本”已经是一个包含140列的表格,我想将其连接到其他三列,因此最后我将获得一个包含143列和N行的DF。

3 个答案:

答案 0 :(得分:1)

我的答案假设您的数据类型是NumPy数组,从您的问题标题可以明显看出。我只是将np.array()放在其周围以使其成为NumPy数组,因为我没有从中获得此结构的DataFrame。

然后,您可以flatten的嵌套数组为

data = np.array([[259200.0] [259200.0] [259200.0]..., [260099.98] [260099.98] [260099.98]])
new_data = data.flatten() 
# array([259200.  , 259200.  , 259200.  , 260099.98, 260099.98, 260099.98])

或使用ravel作为

new_data = data.ravel() 
# array([259200.  , 259200.  , 259200.  , 260099.98, 260099.98, 260099.98])

答案 1 :(得分:0)

flat_list = [item for sublist in l for item in sublist]

您还可以遍历列表列表并合并它们。

lists = [[259200.0] [259200.0] [259200.0]..., [260099.98] [260099.98] [260099.98]]

merged_list = []

for l in lists:
    merged_list += l

print(merged_list)
[259200.0 259200.0 259200.0 ... 260099.98 260099.98 260099.98]

尝试此代码,它将解决您的问题。谢谢:)

答案 2 :(得分:0)

我假设输入为列表列表,而您想将输出作为简单列表

old_data = [[259200.0], [259200.0], [259200.0]]
new_data = []
for item in old_data:
    new_data.append(item[0])
print new_data #[259200.0, 259200.0, 259200.0]