含NaN的TimeStamp差值计算及按ID分组差值计算咨询
实现方案(基于Python Pandas)
前置处理
首先确保TimeStamp列为数值类型,如果你数据里的NaN是文本字符串,需要先转换为Pandas识别的标准空值:
import pandas as pd import numpy as np # 自动转换非数值内容为标准空值,同时将列转为数值类型 df['TimeStamp'] = pd.to_numeric(df['TimeStamp'], errors='coerce')
需求1:无分组计算TimeStamp差值
直接调用Pandas内置的diff()方法即可,该方法默认计算当前行与上一行的差值,前后任意一行存在空值时返回空值,完全匹配你需要的输出规则:
df['diff'] = df['TimeStamp'].diff()
需求2:按ID分组计算组内TimeStamp差值
基于groupby按ID分组后再调用diff(),方法会在每个ID的独立分组内单独计算行差,不会跨ID取值:
df['diff'] = df.groupby('ID')['TimeStamp'].diff()
以上两段代码运行后输出的结果和你给出的预期样例完全一致。
内容的提问来源于stack exchange,提问作者CHL
相关产品推荐
相关产品推荐

