python - pandas 将第二列堆叠在第一列下方,反之亦然

标签 python pandas

我有一个包含两列的 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 Flipvstack

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/

相关文章:

python - 打印没有列名的 pandas df

python - OpenGL 基础 : calling glDrawElements once per object

python - Pandas :如何计算组内的条件滚动/累积最大值

python - "ValueError: labels [' 时间戳 '] not contained in axis"错误

python - 稀疏数据帧上的 Pandas.concat ……一个谜?

python - 使用 df.merge 填充 df 中的新列给出奇怪的匹配项

python - 如何从tensorflow fully_connected获取权重

Python pygame窗口不断崩溃

python - Scipy - 非线性方程组的所有解

python - 如何在不在左数据框中的右数据框中获取数据