使用Pandas计算同事件双时间序列的时间延迟差值
可行,以下是具体实现方案:
核心逻辑
两个序列记录同一事件,数值特征一致,因此可以通过匹配对应事件的时间点来计算序列间的延迟差。
步骤1:提取事件时间点
首先从两个DataFrame中提取事件发生的关键时间点(比如z值发生突变的时刻,可根据实际事件特征调整判断条件):
# 示例:提取z从0变为非0的事件起始时间 df1_events = df1[df1['z'].diff() > 0].index df2_events = df2[df2['z'].diff() > 0].index
步骤2:匹配对应事件
根据事件数量一致性选择匹配方式:
- 事件数量一致:直接按顺序匹配
matched = pd.DataFrame({'t1': df1_events, 't2': df2_events}) - 事件数量有差异:用最近邻匹配找最接近的时间点
import numpy as np matched_t2 = [] for t in df1_events: closest_idx = np.argmin(np.abs(df2_events - t)) matched_t2.append(df2_events[closest_idx]) matched = pd.DataFrame({'t1': df1_events, 't2': matched_t2})
步骤3:计算时间差值
直接计算匹配后时间点的差值,可转换为所需时间单位(如秒):
matched['time_delay'] = (matched['t2'] - matched['t1']).dt.total_seconds()
步骤4:校验结果
通过绘制time_delay的分布或时序图,排查异常匹配值,确保结果符合预期。
内容的提问来源于stack exchange,提问作者pasq
相关产品推荐
相关产品推荐

