从Pandas Dataframe提取后的整形数组形状

时间:2018-10-15 04:30:53

标签: python arrays pandas numpy

我在Dataframe中有一列,其中每个单元格都有一个(300,)形状的numpy数组。

当我使用.values方法提取此列的值时,我得到一个形状为(N,)的numpy数组,其中N是数据帧的行数。 N的每个元素都是一个(300,)数组。我希望提取的形状为(Nx300)

所以我想将提取的列的形状设置为(Nx300)。我尝试使用pd.as_matrix(),但这仍然使我得到一个形状为(N,)的数字数组。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用numpy.concatenate,转换为列表并转换为array

a = np.random.randint(10, size=300)
print (a.shape)
(300,)

df = pd.DataFrame({ 'A':[a,a,a]})

arr = np.array(np.concatenate(df.values).tolist())
print (arr.shape)
(3, 300)