これは同様の質問です: pandas データフレームを反復処理する
これでうまくいくと思います。疑似タラ。0.11-dev が必要です
両方のフレームには日時インデックスがあり、A は最初のフレームであり、B はイベントのみを含むためはるかに短いです。
A で、インデックスを列として設定し、A['date'] = A.index
B で、インデックスを列として設定し、B['date'] = B.index
A と B を内部結合し、次に B を埋めます
C = A.join(B).ffill()
次に、イベントが含まれている場合は、次のようなブール論理が必要です。
C['is_included'] = (C['A_lat'] > C['B_lat']) & (C['A_long'] > C['B_long'])...etc
したがって、is_included が True の場合、前のイベントからの差分時間が必要です。
B の元の日付列で、選択されていないイベントを nan に設定します。
C['date_B'][~C['is_included']] = np.nan
date_B をもう一度前方に入力します
C['date_B'] = C['date_B'].ffill()
date_A から date_B を減算すると、timedelta が得られると思います
C['delta'] = C['date_B']-C['date_A']
それから
C[C['is_included']] is your answer, and delta is the timedelta