使用 merge_asof 实现高效的时间序列匹配(无需循环)

pd.merge_asof() 是 Pandas 中用于 按最近键值合并两个表 的高效函数,特别适合处理时间序列、数值区间或非精确匹配的场景。以下是其核心用法和示例:


核心功能
根据一个键(如日期或数值),在右表中找到 最接近左表键值 的记录,并合并到左表。常用于:
• 合并价格变动记录(如订单时间匹配最新价格)

• 匹配时间戳相近的日志数据

• 处理数值区间(如温度区间匹配传感器ID)


基础语法

pd.merge_asof(
    left,                   # 左表(主表)
    right,                  # 右表(查找表)
    on=None,                # 键列名(左右表同名时用)
    left_on=None,           # 左表键列名
    right_on=None,          # 右表键列名
    left_index=False,       # 是否用左表索引作为键
    right_index=False,      # 是否用右表索引作为键
    by=None,                # 分组键(如按多个列分组匹配)
    suffixes=("_x", "_y"),  # 列名后缀
    tolerance=None,         # 允许的最大时间/数值差
    allow_exact_matches=True,  # 是否允许精确匹配
    direction="backward"    # 匹配方向:backward/forward/nearest
)</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值