stimB stimAstimCstimD
我有4列(stimA_pos, stimB_pos, stimC_pos, stimD_pos)的字符串定义图像的位置(左,右,上,下)。另一列显示所选图像的字符串(decision_resp)。我想创建一个显示所选图像的新列,而不是"左","右"等。这应该是结果(decision_resp_img):
decision_resp_imgdf1.join(df1.reset_index().
melt(['index' ,'decision_resp'], var_name = 'decision_resp_img').
query('decision_resp == value').set_index('index')['decision_resp_img'].
str.replace('_pos', ''))
stimA_pos stimB_pos stimC_pos stimD_pos decision_resp decision_resp_img
0 up left down right left stimB
1 down up right left down stimA
2 left down right up right stimC
3 right left up down down stimD
df["decision_resp_img"] = df.apply(lambda x: dict(zip((a:=dict(x[["stimA_pos","stimB_pos","stimC_pos","stimD_pos"]])).values(), a.keys()))[x["decision_resp"]].replace("_pos","") , axis=1)
df
输出:
stimA_pos stimB_pos stimC_pos stimD_pos decision_resp decision_resp_img
0 up left down right left stimB
1 down up right left down stimA
2 left down right up right stimC
3 right left up down down stimD