我有两个数据帧,每个数据帧具有相同的列1)参与者做出的响应2)以秒和毫秒(s.ms)为单位的响应时间。例如,>
subjectData = Key RT 0 v 2.20 1 v 4.34 2 v 5.51 3 v 10.39
我还有一个数据框,它是“正确”的响应和时间。例如,>
correctData = Key RT 0 v 2.25 1 w 4.34 2 v 5.61 3 v 12.39
我首先想看看响应在哪里匹配...也就是说,找到与subjectData相同的正确数据行。如果它们匹配,那么我想看看时间是否匹配+/- 1秒。
所以最终结果应该看起来像这样
TRUE FALSE TRUE FALSE
因此,如果受试者在提供的数据框中列出的“正确”时间内按了正确的按钮,则只要按了正确的按钮,就可以正确地获得目标。请注意,这些数据框的长度很可能不一样(受试者的反应可能多于或少于“正确”的反应数)。因此,“加入”可能在这里不起作用。
关于如何最有效地执行此操作的任何想法?
我有两个数据帧,每个数据帧具有相同的列1)参与者做出的响应2)以秒和毫秒(s.ms)为单位的响应时间。例如,subjectData = Key RT 0 v 2.20 ...
您可以使用DataFrame.eq:
cond1=subjectData['Key'].eq(correctData['Key'])
cond2=(subjectData['RT']<(correctData['RT']+1))&(subjectData['RT']>(correctData['RT']-1))
cond1&cond2
0 True
1 False
2 True
3 False
dtype: bool