将pandas数据帧从wide转换为long

use*_*827 3 python pandas

我有pandas.Dataframe以下列:

a_1  ab_1  ac_1    a_2   ab_2   ac_2
2      3     4      5     6      7 
Run Code Online (Sandbox Code Playgroud)

如何将其转换为以下内容?

a    ab    ac 
2     3     4
5     6     7 
Run Code Online (Sandbox Code Playgroud)

我试图使用pandas melt来从宽格式转换为长格式,但不确定语法.

hil*_*lem 5

您可以通过多索引和堆栈替换列:

df.columns = pd.MultiIndex.from_tuples(df.columns.str.split('_').map(tuple))
df = df.stack()
Run Code Online (Sandbox Code Playgroud)