给出此数据框:
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,经过数小时的试验后无法偶然找到正确的代码。
答案 0 :(得分:1)
执行wide_to_long
+ unstack
和stack
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