Bry*_*ank 4 python arrays numpy
我有一个二维numpy数组:
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
Run Code Online (Sandbox Code Playgroud)
我将如何将其转换为pandas数据框,将该坐标处的x坐标,y坐标和相应的数组值转换为pandas数据框,如下所示:
x y val
0 0 1
0 1 4
0 2 7
1 0 2
1 1 5
1 2 8
...
Run Code Online (Sandbox Code Playgroud)
使用堆栈和重置索引:
df = pd.DataFrame(arr).stack().rename_axis(['y', 'x']).reset_index(name='val')
df
Out:
y x val
0 0 0 1
1 0 1 2
2 0 2 3
3 1 0 4
4 1 1 5
5 1 2 6
6 2 0 7
7 2 1 8
8 2 2 9
Run Code Online (Sandbox Code Playgroud)
如果订购很重要:
df.sort_values(['x', 'y'])[['x', 'y', 'val']].reset_index(drop=True)
Out:
x y val
0 0 0 1
1 0 1 4
2 0 2 7
3 1 0 2
4 1 1 5
5 1 2 8
6 2 0 3
7 2 1 6
8 2 2 9
Run Code Online (Sandbox Code Playgroud)