要按照连续重叠的时间间隔过滤数据行,可以使用pandas库中的groupby函数结合shift函数和cumsum函数实现。
示例代码如下:
import pandas as pd
df = pd.DataFrame({ "id": [1,1,1,1,2,2,2,3,3,3], "start_time": ["2022-01-01 10:00:00", "2022-01-01 11:00:00", "2022-01-01 12:00:00", "2022-01-01 13:00:00", "2022-01-01 10:00:00", "2022-01-01 12:00:00", "2022-01-01 13:00:00", "2022-01-01 12:00:00", "2022-01-01 13:00:00", "2022-01-01 14:00:00"], "end_time": ["2022-01-01 11:00:00", "2022-01-01 12:00:00", "2022-01-01 13:00:00", "2022-01-01 14:00:00", "2022-01-01 11:00:00", "2022-01-01 13:00:00", "2022-01-01 14:00:00", "2022-01-01 13:00:00", "2022-01-01 14:00:00", "2022-01-01 15:00:00"] })
df["start_time"] = pd.to_datetime(df["start_time"]) df["end_time"] = pd.to_datetime(df["end_time"])
df = df.sort_values(["id", "start_time"])
df["time_delta"] = df.groupby("id")["
上一篇:按连续值出现分组