pandas中结合value阈值的datetime时间差计算与新列生成
需求实现说明
核心计算逻辑
按照规则逐行判定计算,完全匹配给定的输出样例:
- 阈值设定为20,仅当
value列数值严格大于20时,才计算对应的时间变化值 - 首行数据无前置参考时间,固定输出占位符
- - 若当前行
value数值≤20,强制change in time列输出0mins - 若当前行
value数值>20,计算当前行时间戳与上一个满足value>20条件的行的时间差,按分钟为单位拼接输出格式为Xmins的内容
逐行计算结果对照
完全对齐参考输出的最终效果:
2020-03-01:00行:value=20,不满足>20的判定条件,为表格首行,对应change in time输出-2020-03-02:01行:value=21>20,与上一个满足条件的时间点差1分钟,对应输出1mins2020-03-03:02行:value=19.3<20,不参与时间差计算,对应输出0mins2020-03-04:03行:value=22>20,与上一个满足条件的时间点差1分钟,对应输出1mins2020-03-05:04行:value=23.7>20,与上一个满足条件的时间点差1分钟,对应输出1mins2020-03-06:05行:value=30>20,与上一个满足条件的时间点差1分钟,对应输出1mins
计算过程中不使用不满足阈值行的时间点作为差算基准,避免低值时段的时间间隔被误计入高值段的变化率中,保证输出和参考样例完全一致。
内容的提问来源于stack exchange,提问作者Victor Uwaje
相关产品推荐
相关产品推荐

