我意识到我的标题有点混乱,但我想如果我们继续举例,我可以更清楚地说明。我想要做的是一个矢量化测试,以检查给定系列中的任何值是否包含在由具有start
和stop
列的 DataFrame 对象定义的任何间隔中。
考虑系列,valid
,它是名为 的 DataFrame 的列trials
。这是trials
看起来的样子:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 156 entries, 0 to 155
Data columns (total 3 columns):
start 156 non-null values
stop 156 non-null values
valid 156 non-null values
dtypes: bool(1), float64(2)
我有一个名为“blink”的单独数据框。它有三列:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 41 entries, 0 to 40
Data columns (total 3 columns):
tstart 41 non-null values
tstop 41 non-null values
dur 41 non-null values
dtypes: bool(1), float64(2)
tstop
最后一列没有直接关系:它是眼球的持续时间,即和之间的差异tstart
。
如果每行之间的间隔对应于与任何trials['valid']
to间隔重叠,我想设置每一行。False
trials['start']
trials['stop']
blink['tstart']
blink['tstop']
我可以遍历行并np.arange
与in
运算符一起在嵌套循环中执行此操作,但实际上需要数小时(我的实际数据集比这个虚拟示例大得多)。我可以使用矢量化方法吗?如果没有,是否有更快的基于迭代的方法?
如果有任何不清楚的地方,我当然很乐意提供更多细节。