如何从多个 numpy 数组中创建一个 Pandas 数据框

Ati*_*ska 5 python numpy dataframe pandas

我有 2 个数组,如下所示,我想将它们转换为数据框列:

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)
Run Code Online (Sandbox Code Playgroud)

实际输出:

   0  1  2   3
0  2  4  6   8
1  3  6  9  12
Run Code Online (Sandbox Code Playgroud)

预期输出:

   0  1 
0  2  4 
1  4  6
2  6  9
3  8  12 
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到预期的输出?

WeN*_*Ben 8

最后加T

df_from_arr.T
Out[418]: 
   0   1
0  2   3
1  4   6
2  6   9
3  8  12
Run Code Online (Sandbox Code Playgroud)

或者修改你的输入数组

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


Tim*_*ois 6

您可以转置 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
Run Code Online (Sandbox Code Playgroud)


小智 6

您还可以这样做:

arr1 = np.array([2, 4, 6, 8])
arr2 = np.array([3, 6, 9, 12])
df_from_arr = pd.DataFrame({0:arr1,1:arr2})
Run Code Online (Sandbox Code Playgroud)