有没有办法在一组日期范围之间定位数据框?
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
我见过很多定位一个日期范围的数据框的方法,
即
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