Python 数据帧上的时间滤波器
我有一个pd.DataFrame“join3”,它有多个列,如下所示: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将被过滤掉 我这
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']