如何用几个numpy 1d数组创建一个pandas DataFrame?
问题描述:
我创建了一些np.arrays与他们做一些计算。 (全部具有相同的大小[100,1]) 现在我想创建一个熊猫数据框,并且每个数组都应该是该DF的一列。 数组的名称应该是DataFrame的标题。如何用几个numpy 1d数组创建一个pandas DataFrame?
在Matlab中我会做很容易像:
表=表(数组1,数组2,ARRAY3,...);
我该怎么在Python中做到这一点?
在此先感谢!
答
比方说,这些都是你的阵列:
arr1, arr2, arr3 = np.zeros((3, 100, 1))
arr1.shape
Out: (100, 1)
您可以使用hstack来堆叠起来,并通过所产生的二维阵列数据框的构造函数:
df = pd.DataFrame(np.hstack((arr1, arr2, arr3)))
df.head()
Out:
0 1 2
0 0.0 0.0 0.0
1 0.0 0.0 0.0
2 0.0 0.0 0.0
3 0.0 0.0 0.0
4 0.0 0.0 0.0
或名称的列作为arr1
, arr2
,...:
df = pd.DataFrame(np.hstack((arr1, arr2, arr3)),
columns=['arr{}'.format(i+1) for i in range(3)])
df.head()
Out:
arr1 arr2 arr3
0 0.0 0.0 0.0
1 0.0 0.0 0.0
2 0.0 0.0 0.0
3 0.0 0.0 0.0
4 0.0 0.0 0.0
答
解决方案二维数组和DataFrame
构造:
df = pd.DataFrame(np.concatenate([arr1, arr2, arr3], axis=1), columns= ['a','b','c'])
啊对不起,我误解你的问题。您需要重新设计阵列以使用我提供的语法。 –