Python 数据帧使用列作为行

Python 数据帧使用列作为行,python,pandas,dataframe,pivot-table,melt,Python,Pandas,Dataframe,Pivot Table,Melt,我有一个数据框架,其中有一列用于分组和问题答案列: Group Q1 Q2 Q3 Q4 0 1 A B C 6 1 1 B C A A 2 1 E F V A 3 2 R T Y O 4 2 M Z D F 我想将问题的列移到行中,这样所需的数据框将如下所示: Group Question Answer 0 1 Q1 A 1 1 Q1

我有一个数据框架,其中有一列用于分组和问题答案列:

   Group Q1 Q2 Q3 Q4
0      1  A  B  C  6
1      1  B  C  A  A
2      1  E  F  V  A
3      2  R  T  Y  O
4      2  M  Z  D  F
我想将问题的列移到行中,这样所需的数据框将如下所示:

   Group Question Answer
0      1       Q1      A
1      1       Q1      B
2      1       Q1      R
3      1       Q2      B
4      1       Q2      C
5      1       Q2      F
。。 .. 依此类推,直到最后一行:

[2    Q4     F]
最好的方法是什么?

melt

理解力
melt

理解力
您也可以使用
unstack

# do unstack
df = df.set_index('Group').unstack().reset_index()

# rename columns
df.columns = ['Group','Question','Answer']

您也可以使用
unstack

# do unstack
df = df.set_index('Group').unstack().reset_index()

# rename columns
df.columns = ['Group','Question','Answer']
# do unstack
df = df.set_index('Group').unstack().reset_index()

# rename columns
df.columns = ['Group','Question','Answer']