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

如何为Pandas DataFrame新增每3行重复相同值的counter列

最优实现方案

最简便且通用性最强的方法是使用向量化整数整除运算,该方案走numpy底层运算,性能远高于迭代类实现,完美适配大规模数据集,同时不受DataFrame原有索引格式影响:

import numpy as np
import pandas as pd

# 通用写法,不管df原有索引是否连续/从0开始都可用
df['counter'] = np.arange(len(df)) // 3

如果你的DataFrame本身是默认的从0开始的连续整数索引,可以简化为:

df['counter'] = df.index // 3

方案说明

  • 核心逻辑:每3个连续元素为一组,组序号从0开始依次递增,整数整除3正好可以把连续的0/1/2映射为0,3/4/5映射为1,以此类推,完全匹配需求
  • 性能优势:向量化运算没有Python层循环,即使是千万级行的数据集也可以在毫秒级完成计算,远快于apply、遍历行等实现
  • 通用性:用np.arange(len(df))生成序列的方案,不受原DataFrame索引是否有缺失、是否从0开始、是否是数值类型的影响,适配所有合法的DataFrame结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:24:02