熊猫:每隔n列取一堆

时间:2020-06-30 16:58:27

标签: pandas dataframe stack concat

给出此数据框:

 pd.DataFrame([range(6),range(6,12)],columns=['A1','A2','A3','B1','B2','B3'])

    A1  A2  A3  B1  B2  B3
0   0   1   2   3   4   5
1   6   7   8   9   10  11

我想每隔n列(在此示例中为3列)进行堆积,如下所示:

       T0   T1  T2
0   A  0    1   2
    B  3    4   5
1   A  6    7   8
    B  9    10  11

我尝试了许多不同的pandas方法,例如concat,stack,melt,wide_to_long,经过数小时的试验后无法偶然找到正确的代码。

1 个答案:

答案 0 :(得分:1)

执行wide_to_long + unstackstack

df=pd.wide_to_long(df.reset_index(),['A','B'],i='index',j='lvl').stack().unstack(1)
lvl      1   2   3
index             
0     A  0   1   2
      B  3   4   5
1     A  6   7   8
      B  9  10  11