我有一个包含两列的DataFrame,我想将第二列堆叠在第一列之下,第一列堆叠在第二列之下。
pd.DataFrame({'A':[1,2,3], 'B': [4,5,6]})
A B
0 1 4
1 2 5
2 3 6
期望的输出:
A B
0 1 4
1 2 5
2 3 6
3 4 1
4 5 2
5 6 3
到目前为止,我已经尝试过:
pd.concat([df, df[['B','A']].rename(columns={'A':'B', 'B':'A'})])
A B
0 1 4
1 2 5
2 3 6
3 4 1
4 5 2
5 6 3
这是最干净的方式吗?
答案 0 :(得分:5)
numpy flip
和vstack
,即
v = df.values
pd.DataFrame(pd.np.vstack((v, pd.np.fliplr(v))), columns=df.columns)
A B
0 1 4
1 2 5
2 3 6
3 4 1
4 5 2
5 6 3