我有一个数据框,其值如下:
A B C D E F G H
1 4 2 5 3 4 9 3
2 6 3 3 2 7 2 6
3 9 4 2 1 1 6 1
我想按如下方式重组数据框:
A B
1 4
2 6
3 9
2 5
3 3
4 2
3 4
2 7
1 1
9 3
2 6
6 1
答案 0 :(得分:2)
这是需要reshape
并重新获得订单的一种方法
newdf=pd.DataFrame(np.reshape(df.values,(-1,2)))
newdf=newdf.iloc[(newdf.index%(df.shape[1]/2)).argsort()]
newdf
Out[447]:
0 1
0 1 4
4 2 6
8 3 9
1 2 5
5 3 3
9 4 2
2 3 4
6 2 7
10 1 1
3 9 3
7 2 6
11 6 1
或者我们使用groupby
v=np.concatenate([y.values for x , y in df.groupby(np.arange(df.shape[1])//2,axis=1)])
Out[451]:
array([[1, 4],
[2, 6],
[3, 9],
[2, 5],
[3, 3],
[4, 2],
[3, 4],
[2, 7],
[1, 1],
[9, 3],
[2, 6],
[6, 1]], dtype=int64)
newdf=pd.DataFrame(v)