有没有办法在一组日期范围之间定位数据框?

Is there a way to locate a data frame between a set of date ranges?

我见过很多定位一个日期范围的数据框的方法,

mask = (df["TimeStamp"] > date_range[0]) & (df["TimeStamp"] < date_range[1])
df = df.loc[mask]

但如果我有多个日期范围,我无法找到如何执行此操作

date_ranges = [date_range_1, date_range_2, date_range_3, ... , date_range_n]

我需要类似

的东西
mask = ()

for date_range in date_ranges:
    sub_mask = (df["TimeStamp"] > date_range[0]) & (df["TimeStamp"] < date_range[1])
    mask.append(sub_mask)

df = df.loc[mask]

但是当然由于各种原因这不起作用(您需要在 and 之间添加一个 or 语句,并且不能以这种方式附加这些掩码)

谁能给我一个正确方向的提示?

您可以使用以下方式更改您的代码:

mask = 0
for date_range in date_ranges:
    sub_mask = (df["TimeStamp"] > date_range[0]) & (df["TimeStamp"] < date_range[1])
    mask = (mask | sub_mask)
df = df.loc[mask]

因为 mask = (1 | mask) 总是 return 最后一位为 1

mask = 0