私のタイトルは少しわかりにくいと思いますが、例を進めるとより明確になると思います。私がやりたいのは、特定のシリーズの値のいずれかが、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」という別の DataFrame があります。次の 3 つの列があります。
<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']
toの間隔がtoの間隔のいずれかtrials['stop']
と重なる場合に設定したいと思います。blink['tstart']
blink['tstop']
行を反復処理し、演算子と一緒に使用してネストされたループでこれを行うこともできますが、文字通り数時間かかります (実際のデータ セットは、このダミーの例よりもはるかに大きくなります)。使用できるベクトル化されたアプローチはありますか? そうでない場合、より高速な反復ベースのアプローチはありますか?np.arange
in
ご不明な点がございましたら、もちろん喜んで追加の詳細をお知らせいたします。