数据帧上的时间滤波器

2024-04-27 00:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pd.数据帧“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

现在我只想过滤并获取那些行,其中Interval start end与Interval regstart reged相交。在上面的例子中,C项将被过滤掉。你知道吗

我这样做:

join4 = join3[ ((join3['regend'] > join3['start']) and (join3['regend'] < join3['end']) ) or 
               ((join3['regstart'] > join3['start']) and (join3['regstart'] < join3['end']))  ]

但是我得到了一个错误“ValueError:一个数列的真值。使用a.empty、a.bool()、a.item()和a.any()或a.all()。你知道吗

有什么问题?你知道吗


Tags: orand数据错误start例子endpd
1条回答
网友
1楼 · 发布于 2024-04-27 00:28:41

对于按位andor,将or更改为|,将and更改为&。你知道吗

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

相关问题 更多 >