如何在Pandas数据框中堆叠行以获得一个“长行”?

时间:2016-08-11 15:49:40

标签: python pandas dataframe

假设我有一个包含4行3列的数据框。我想水平堆叠行,以便我得到一行12列。怎么做以及如何处理碰撞的列名?

1 个答案:

答案 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