Python 数据帧上的时间滤波器

Python 数据帧上的时间滤波器,python,pandas,filtering,Python,Pandas,Filtering,我有一个pd.DataFrame“join3”,它有多个列,如下所示: start end regstart regend A 01:00 03:00 02:00 02:30 B 07:00 08:00 07:30 09:00 C 12:00 13:00 15:00 17:00 现在,我只想筛选并获取那些行,其中间隔开始-结束与间隔regstart-regend相交。在上面的例子中,项目C将被过滤掉 我这

我有一个pd.DataFrame“join3”,它有多个列,如下所示:

    start   end      regstart  regend
A   01:00   03:00    02:00     02:30
B   07:00   08:00    07:30     09:00
C   12:00   13:00    15:00     17:00
现在,我只想筛选并获取那些行,其中间隔开始-结束与间隔regstart-regend相交。在上面的例子中,项目C将被过滤掉

我这样做:

join4 = join3[ ((join3['regend'] > join3['start']) and (join3['regend'] < join3['end']) ) or 
               ((join3['regstart'] > join3['start']) and (join3['regstart'] < join3['end']))  ]
join4=join3[(join3['regend']>join3['start'])和(join3['regend']join3['start'])和(join3['regstart']
但我得到的错误是“ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()a.any()或a.all()


问题是什么?

更改为
|
并将
更改为
&
按位

join4 = join3[ ((join3['regend'] > join3['start']) &
                (join3['regend'] < join3['end']) ) |
               ((join3['regstart'] > join3['start']) &
                (join3['regstart'] < join3['end']))  ]
join4=join3[((join3['regend']>join3['start']))&
(join3['regend']join3['start']))&
(join3['regstart']