如何使用多个numpy数组创建pandas数据帧?

12

我有以下两个数组,希望能将它们转换为数据框列:

arr1 = np.array([2, 4, 6, 8])
arr2 = np.array([3, 6, 9, 12])
df_from_arr = pd.DataFrame(data=[arr1, arr2])
print(df_from_arr)

实际输出:

   0  1  2   3
0  2  4  6   8
1  3  6  9  12

预期输出:

   0  1 
0  2  4 
1  4  6
2  6  9
3  8  12 

我该如何得到预期的输出结果?

3个回答

11
在结尾添加 T
df_from_arr.T
Out[418]: 
   0   1
0  2   3
1  4   6
2  6   9
3  8  12

或者修改您的输入数组

pd.DataFrame(np.hstack((arr1[:,None], arr2[:,None])))
Out[426]: 
   0   1
0  2   3
1  4   6
2  6   9
3  8  12

11
您可以转置DataFrame。
arr1 = np.array([2, 4, 6, 8])
arr2 = np.array([3, 6, 9, 12])
df_from_arr = pd.DataFrame(data=[arr1, arr2]).T
print(df_from_arr)

   0   1
0  2   3
1  4   6
2  6   9
3  8  12

6
您还可以这样做:
arr1 = np.array([2, 4, 6, 8])
arr2 = np.array([3, 6, 9, 12])
df_from_arr = pd.DataFrame({0:arr1,1:arr2})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接