我有一个包含两列的 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
这是最干净的方式吗?
最佳答案
如果你问我的话,Concat 更好。但如果你有 100 列,重命名就会很痛苦。作为一种通用方法,这里有 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
关于python - pandas 将第二列堆叠在第一列下方,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958318/