假设我有一个包含4行3列的数据框。我想水平堆叠行,以便我得到一行12列。怎么做以及如何处理碰撞的列名?
答案 0 :(得分:1)
您可以通过stack
框架生成一系列所有值来实现此目的,然后我们要使用to_frame
然后reset_index
将其转换回df索引级别然后使用.T
转置:
In [2]:
df = pd.DataFrame(np.random.randn(4,3), columns=list('abc'))
df
Out[2]:
a b c
0 -1.744219 -2.475923 1.794151
1 0.952148 -0.783606 0.784224
2 0.386506 -0.242355 -0.799157
3 -0.547648 -0.139976 -0.717316
In [3]:
df.stack().to_frame().reset_index(drop=True).T
Out[3]:
0 1 2 3 4 5 6 \
0 -1.744219 -2.475923 1.794151 0.952148 -0.783606 0.784224 0.386506
7 8 9 10 11
0 -0.242355 -0.799157 -0.547648 -0.139976 -0.717316