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

如何按分组结合动态逻辑计算pandas DataFrame记录间的差值

实现方案

以下是基于pandas的高效实现方式,全程使用向量化操作,避免循环迭代,适合大体积数据集使用。

1. 前置校验

首先校验你指定的目标LL值是否在所有GP分组中都存在,只有符合该条件才执行计算逻辑:

import pandas as pd

# 替换为你要指定的LL值
target_ll = "XX"

# 校验逻辑:存在目标LL的GP数量 = 全部GP数量时,符合计算要求
all_gp_has_target = df[df["LL"] == target_ll]["GP"].nunique() == df["GP"].nunique()

2. 计算C列

优先推荐映射表法,性能优于groupby+transform方案:

if all_gp_has_target:
    # 提前生成「GP-目标LL对应的B值」映射表
    gp_target_b_map = df[df["LL"] == target_ll].set_index("GP")["B"].to_dict()
    # 匹配映射表后减当前行A列,直接得到C列
    df["C"] = df["GP"].map(gp_target_b_map) - df["A"]
else:
    print("指定LL值未覆盖所有GP分组,不执行计算")

效果验证

用你给出的示例数据运行上述代码,得到的C列和你贴出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:15:04