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

Pandas如何按标识匹配关联行,新增对应事件时间及关联值列

实现方案

核心思路

原数据存储了两类可拆分的信息,拆分后关联即可实现需求,比透视表逻辑更简洁、性能更优:

  • 主数据:identification列非空的行,存储标识、初始值、初始时间
  • 事件数据:identification_bis列非空的行,存储事件发生时间、对应关联标识、事件值

实现代码

import pandas as pd

# 构造示例原始DataFrame,实际使用时替换为你自己的df即可
df = pd.DataFrame([
    ["2021-10-07 10:00:01", "123456789", 1000, "", ""],
    ["2021-10-07 10:00:05", "", "", "123456789", 900],
    ["2021-10-07 10:00:10", "", "", "123456789", 100]
], columns=["timestamp", "identification", "value", "identification_bis", "value_bis"])

# 拆分主表,仅保留identification非空的行,删除无用字段
# 若你的空值是None/NaN,将!= ""替换为.notna()即可
main_df = df[df["identification"] != ""][["timestamp", "identification", "value"]].copy()

# 拆分事件表,仅保留identification_bis非空的行,重命名字段用于后续关联
event_df = df[df["identification_bis"] != ""].rename(
    columns={"timestamp": "event_time", "identification_bis": "identification"}
)[["identification", "event_time", "value_bis"]].copy()

# 按标识字段等值关联得到最终结果
result = pd.merge(main_df, event_df, on="identification", how="left")

适配说明

  • 该方案天然支持多个不同identification值的批量处理,无需额外调整逻辑
  • 可以根据你的实际空值格式(空字符串/NaN/None)调整筛选条件即可正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:36:04