Python 对于多个值中的任意一个值,使用

Python 对于多个值中的任意一个值,使用,python,pandas,Python,Pandas,我有一个像这样的熊猫数据框 data = [["2020-01-01", "2020-01-01"], ["2020-01-02", "2020-01-04"], ["2020-01-05", "2020-01-06"]] df = pd.DataFrame(data, columns=["START", "END"]).astype({

我有一个像这样的熊猫数据框

data = [["2020-01-01", "2020-01-01"], ["2020-01-02", "2020-01-04"], ["2020-01-05", "2020-01-06"]]
df = pd.DataFrame(data, columns=["START", "END"]).astype({"END": "datetime64[ns]" , "START": "datetime64[ns]"})
开始 结束 0 2020-01-01 2020-01-01 1. 2020-01-02 2020-01-04 2. 2020-01-05 2020-01-06 如果可能,请使用通过最小值和最大值从时间戳创建时间间隔:

s = pd.IntervalIndex.from_arrays(df['START'], 
                                 df['END'], 
                                 closed='both')

i = pd.Interval(timestamps.min(), timestamps.max(), closed='both')
out = s.overlaps(i)
print (out )
[False  True False]

我们可以广播
开始
结束
列中的值,以创建布尔掩码,然后沿
轴=1减少生成的布尔掩码

t = timestamps.values
((df['START'].values[:, None] <= t) & (df['END'].values[:, None] >= t)).any(1)

这不是我真正需要的。我不想将时间戳转换为一个间隔,但对于s中的每个间隔,请检查它是否包含来自时间戳的至少一个时间戳。
array([False,  True, False])