将多个pandas列合并到新列中

red*_*dct 6 python analysis pandas

我有一个数据框,其中一些列表明是否看到了一组调查问题.例如:

Q1_Seen    Q2_Seen    Q3_Seen    Q4_Seen
    Q1a        nan        nan        nan
    nan        Q2a        nan        nan
    nan        nan        Q3d        nan
    nan        Q2c        nan        nan
Run Code Online (Sandbox Code Playgroud)

我想将这些列折叠成一列,比如说Q_Seen,它将采用以下形式:

Q_Seen
   Q1a
   Q2a
   Q3d
   Q2c
Run Code Online (Sandbox Code Playgroud)

请注意,每一行都是互斥的:如果其中一列中有值,则其他所有列都是NaN.

我尝试过这样做pd.concat,但它似乎没有产生正确的结果.

vk1*_*011 5

尝试这个:

df['Q_Seen'] = df.stack().values

>>> df

Q1_Seen    Q2_Seen    Q3_Seen     Q4_Seen     Q_Seen
    Q1a        nan        nan         nan        Q1a
    nan        Q2a        nan         nan        Q2a
    nan        nan        Q3d         nan        Q3d
    nan        Q2c        nan         nan        Q2c
Run Code Online (Sandbox Code Playgroud)