假设我有两个数据帧,它们的相关列是:
刺激数据帧:
stimuli_id rank
0 23 0
1 27 1
2 62 2
3 88 2
4 99 1
而“stimulis_id”是唯一的索引,“rank”是[0,2]范围内的整数。 试验数据框中的相关列为:
stim1 stim2
0 23 27
1 27 62
2 62 99
而刺激1和刺激2都代表来自刺激数据帧的刺激
现在我想过滤试验数据框中第二个刺激的等级更高的所有行。 因此,过滤后的上述示例应如下所示:
stim1 stim2
0 62 99
所以最终只有在这个试验中,stim1大于stim2,其余的都不是,所以我们过滤它们
我尝试了以下方法:
trials.loc[stimuli.loc[stimuli["stimuli id"] == trials["stim1"]].iloc[0]["rank"] > stimuli.loc[stimuli["stimuli id"] == trials["stim2"]].iloc[0]["rank"]]
但出现了一个值错误:
{ValueError}Can only compare identically-labeled Series objects
我已经寻找了几个小时的解决方案,但没有找到任何有用的
由于
'stimuli_id'
是该数据帧的唯一键,因此使用序列来map
不同的stim列进行排序并检查比较。(我想你们所说的“第二刺激的等级越高”是指一个较小的数字)通过映射每个列,我们在逻辑上创建具有以下比较的掩码:
相关问题 更多 >
编程相关推荐