表有开始时间和结束时间两列 用Python判断时间段是否有重复
时间: 2023-11-14 12:18:30 浏览: 44
可以使用 pandas 库来判断时间段是否有重复。首先,将开始时间和结束时间分别转换为 pandas 中的 datetime 类型。然后,使用 pandas 的 groupby 和 shift 方法可以快速判断是否有重叠的时间段。
下面是一个示例代码:
```python
import pandas as pd
# 生成示例数据
data = {
'start_time': ['2021-01-01 10:00:00', '2021-01-02 14:00:00', '2021-01-03 08:00:00'],
'end_time': ['2021-01-01 12:00:00', '2021-01-02 16:00:00', '2021-01-03 12:00:00']
}
df = pd.DataFrame(data)
# 将开始时间和结束时间转换为 datetime 类型
df['start_time'] = pd.to_datetime(df['start_time'])
df['end_time'] = pd.to_datetime(df['end_time'])
# 判断是否有重叠的时间段
df['overlap'] = (df['start_time'] < df['end_time'].shift()) & (df['end_time'] > df['start_time'].shift())
# 输出结果
print(df)
```
输出结果如下:
```
start_time end_time overlap
0 2021-01-01 10:00:00 2021-01-01 12:00:00 False
1 2021-01-02 14:00:00 2021-01-02 16:00:00 False
2 2021-01-03 08:00:00 2021-01-03 12:00:00 False
```
如果有重叠的时间段,overlap 列的对应行会显示 True。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)