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

Pandas迭代创建批次列:当Diff超过指定阈值时自动递增标识

解决方案

核心逻辑使用Pandas的cumsum()累加函数即可实现,无需拆分表格再拼接,完整可运行代码如下:

import pandas as pd

# 模拟你的样例数据,实际使用时直接读取你的表格即可
data = {
    'Datetime': ['2021-01-01 12:00:00', '2021-01-01 12:02:00', '2021-01-01 12:04:00', 
                 '2021-01-01 12:10:00', '2021-01-01 12:20:00', '2021-01-01 12:22:00'],
    'Diff': [0,2,2,6,10,2]
}
df = pd.DataFrame(data)
df['Datetime'] = pd.to_datetime(df['Datetime'])

# 核心实现代码
threshold = 7 # 可根据需求自定义阈值
df['Batch'] = (df['Diff'] > threshold).cumsum() + 1 # +1是让批次从1开始计数,不需要可直接删除

运行后输出结果如下:

DatetimeDiffBatch
2021-01-01 12:00:0001
2021-01-01 12:02:0021
2021-01-01 12:04:0021
2021-01-01 12:10:0061
2021-01-01 12:20:00102
2021-01-01 12:22:0022

实现原理

  • df['Diff'] > threshold 会生成布尔序列,超过阈值的行返回True(对应数值为1),其余行返回False(对应数值为0)
  • cumsum() 会逐行累加该序列的数值,每遇到一次超过阈值的行,累加值就加1,刚好实现批次号自动递增的效果

如果需要转换成A/B/C的字母批次标识,可新增一步映射逻辑:

import string
# 最多支持26个批次,批次数量更多可自行扩展映射规则
batch_map = {i+1: string.ascii_uppercase[i] for i in range(26)}
df['Batch'] = df['Batch'].map(batch_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:36:06