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

如何在Python中回溯X天检查人员团队列?附代码问题求助

人员回溯时间段团队查询的正确实现方法

原代码存在的问题

  • 关联键错误:原代码通过Manager_ID关联数据集,但需求是查询**被替换人员(Person_replaced)**的团队,应使用Person_replaced与df1的ID关联
  • 日期字段笔误:原代码中引用了不存在的Requested_Date字段,正确字段为df2的Request_Date
  • 字段名不一致:计算的回溯日期字段是days prior,但判断逻辑中误用了n days prior
  • 逻辑判断疏漏:仅判断了入职日期范围,未考虑离职日期,无法准确反映回溯时间段内的任职状态

正确实现步骤及代码

基础版(人员无多次团队变动)

import pandas as pd
import numpy as np
from datetime import timedelta

# 1. 统一转换日期格式
df1["StartDate"] = pd.to_datetime(df1["StartDate"])
df1["EndDate"] = pd.to_datetime(df1["EndDate"])
df2["Request_Date"] = pd.to_datetime(df2["Request_Date"])

# 2. 按被替换人员ID合并数据集
df3 = pd.merge(df2, df1, left_on="Person_replaced", right_on="ID", how="left")

# 3. 设置回溯天数并计算回溯日期
X = 30  # 可根据需求调整回溯天数
df3["backtrack_date"] = df3["Request_Date"] - timedelta(days=X)

# 4. 判定回溯时间段内的所属团队
# 逻辑:人员在[回溯日期, 请求日期]区间内处于该团队任职
# 即入职日期≤回溯日期,且(离职日期≥请求日期 或 离职日期为空(在职))
df3["Team_prior_Request"] = np.where(
    (df3["StartDate"] <= df3["backtrack_date"]) & 
    (df3["EndDate"].isna() | (df3["EndDate"] >= df3["Request_Date"])),
    df3["Team"],
    df3["RequestTeam"]  # 无匹配记录时用请求团队兜底
)

进阶版(人员存在多次团队变动)

如果人员在回溯时间段内有过团队调动,需匹配回溯日期前最近的任职记录,可使用merge_asof实现:

import pandas as pd
from datetime import timedelta

# 1. 转换日期格式
df1["StartDate"] = pd.to_datetime(df1["StartDate"])
df1["EndDate"] = pd.to_datetime(df1["EndDate"])
df2["Request_Date"] = pd.to_datetime(df2["Request_Date"])

# 2. 对数据集按关联字段和日期排序(merge_asof要求)
df1_sorted = df1.sort_values(by=["ID", "StartDate"])
df2_sorted = df2.sort_values(by=["Person_replaced", "Request_Date"])

# 3. 计算回溯日期
X = 30
df2_sorted["backtrack_date"] = df2_sorted["Request_Date"] - timedelta(days=X)

# 4. 匹配回溯日期前最近的任职记录
df3 = pd.merge_asof(
    df2_sorted,
    df1_sorted,
    left_on="backtrack_date",
    right_on="StartDate",
    left_by="Person_replaced",
    right_by="ID",
    direction="backward"  # 取回溯日期之前最近的入职记录
)

# 5. 填充最终团队字段
df3["Team_prior_Request"] = df3["Team"].fillna(df3["RequestTeam"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 05:35:35