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

如何在Power BI中计算指定操作间的平均周期时间

计算同团队同ID操作平均耗时方案

核心逻辑

  • 先转换日期格式:把原始%d/%m/%y格式的日期字符串转成可计算的日期时间类型,避免格式错误
  • 按id+team分组匹配:仅同一个id、同一个团队下的操作记录纳入计算,排除跨id、跨团队的无效匹配
  • 筛选指定操作:根据你输入的起始操作、结束操作,对每个id分别提取对应操作的日期,默认取每个id下最早的起始操作和最早的结束操作匹配,有其他匹配需求可以自行调整逻辑
  • 计算平均时长:先算每个有效id的两个操作的天数差,再对所有差值取平均即可

代码实现(Python Pandas)

下面的代码支持灵活调整筛选的团队、起始操作、结束操作,适配你的需求:

import pandas as pd

# 读取原始数据,这里适配你给出的多空格分隔格式
df = pd.read_csv("你的数据文件路径", sep="\s+")
# 转换日期格式为可计算类型
df['date'] = pd.to_datetime(df['date'], format="%d/%m/%y")

# 筛选参数,可按需修改
target_team = "A"
start_operation = "A"
end_operation = "C"

# 筛选目标团队的数据
team_data = df[df["team"] == target_team]
# 提取每个id的最早起始操作日期
start_dates = team_data[team_data["operation"] == start_operation]\
    .groupby("id")["date"].min().reset_index(name="start_date")
# 提取每个id的最早结束操作日期
end_dates = team_data[team_data["operation"] == end_operation]\
    .groupby("id")["date"].min().reset_index(name="end_date")

# 合并数据,仅保留同时有两个操作的有效id
valid_data = pd.merge(start_dates, end_dates, on="id", how="inner")
# 计算单id耗时
valid_data["diff_days"] = (valid_data["end_date"] - valid_data["start_date"]).dt.days
# 计算平均耗时
avg_cost = valid_data["diff_days"].mean()

print(f"平均耗时:{avg_cost}天")

示例场景计算结果

按照你给出的示例(A团队操作A到操作C的平均耗时),运行代码可得结果为1天:

  • id 333:A操作日期2021-08-13,C操作日期2021-08-14,差值1天
  • id 454:A操作日期2021-08-12,C操作日期2021-08-13,差值1天
  • 两个有效样本的平均耗时为1天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:30:03