Это больше похоже на pivot
проблему
df1=df.query('correct==1').copy()
df2=df.query('correct==0').copy()
df2['key']=df2.groupby(['id','question','feedback']).cumcount()+1
df2=df2.pivot_table(index=['id','question','feedback'],columns='key',values='answer',aggfunc='sum').add_prefix('False_Answer')
df=df1.dropna(1).merge(df2.reset_index(),how='left')
df
Out[388]:
id question feedback ... False_Answer1 False_Answer2 False_Answer3
0 1 q1 f1 ... a1-2 a1-3 a1-4
1 1 q2 f2 ... NaN NaN NaN
[2 rows x 9 columns]