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

带条件计算表格字段差值的实现方法咨询

带条件差值计算实现方案(基于Python Pandas)

核心思路

利用Pandas的条件赋值能力,先计算差值序列,再通过条件过滤仅保留match为True行的结果,其余位置填充NaN。


完整实现代码

1. 导入依赖并构造测试数据

import pandas as pd
import numpy as np

# 构造和示例一致的源数据
df = pd.DataFrame({
    'TimeStamp': [38563, 38568, 38577, 38580, 38589, 38591],
    'Input': ['aaaaa', 'bbb', 'aaaaa', 'bbb', 'bbb', 'aaaaa'],
    'match': [False, False, False, False, True, False]
})

2. 按需求计算diff列

如果你的diff规则是:match为True时,计算当前行和同Input分组内上一行的TimeStamp差值,使用以下代码:

df['diff'] = df.groupby('Input')['TimeStamp'].diff().where(df['match'], np.nan)

如果diff规则是:match为True时,计算当前行和全局上一行的TimeStamp差值,去掉分组逻辑即可:

df['diff'] = df['TimeStamp'].diff().where(df['match'], np.nan)

如果你的diff是其他自定义计算规则,只需把where之前的部分替换为你的差值计算逻辑即可,where的条件过滤逻辑通用。


运行结果示例(同Input分组差值场景)

序号TimeStampInputmatchdiff
038563aaaaaFalseNaN
138568bbbFalseNaN
238577aaaaaFalseNaN
338580bbbFalseNaN
438589bbbTrue9.0
538591aaaaaFalseNaN

若你示例中diff=1是其他自定义计算逻辑,只需替换where方法前的差值计算部分即可,条件过滤逻辑通用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:09:05