You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中两个不同时间序列DataFrame的net列相加的高效实现方法

实现方案

直接基于两个DataFrame已有的epoch_ns做精确对齐求和,不需要生成任何中间时间切片,代码如下:

import pandas as pd

# 将时间戳列设为索引用于对齐
df1_idx = df_1.set_index("epoch_ns")
df2_idx = df_2.set_index("epoch_ns")

# 两列相加,缺失值自动填充为0
result = df1_idx["net"].add(df2_idx["net"], fill_value=0).reset_index()

方案优势

  • 无精度损失:完全保留原始纳秒级时间戳精度,数值计算完全基于原始值,不会出现重采样导致的偏移误差
  • 内存占用低:内存消耗仅和两个原始DataFrame的总行数成正比,和时间跨度无关,不会生成多余的空数据行
  • 执行效率高:pandas的索引对齐基于哈希匹配实现,时间复杂度为O(n+m)(n、m分别为两个表的行数),远快于重采样遍历全时间区间的操作

如果你的对齐规则不是精确匹配时间戳,而是需要将某一个表的时间戳匹配到另一个表最近的时间点,可以调整为merge_asof实现:

# 按时间升序排序是merge_asof的前提
df1_sort = df_1.sort_values("epoch_ns")
df2_sort = df_2.sort_values("epoch_ns")

# 左匹配最近时间戳,可根据需求调整direction参数
merged = pd.merge_asof(df1_sort, df2_sort, on="epoch_ns", direction="nearest")
merged["net"] = merged["net_x"] + merged["net_y"]
result = merged[["epoch_ns", "net"]]

内容的提问来源于stack exchange,提问作者HCSF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:24:03