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

如何在DataFrame中新增每3行数值递增1的新列

如何为DataFrame添加每3行数值递增1的新列?

问题场景

需要给现有DataFrame新增数值列,实现每3行数值递增1,对应示例如下:

原始DataFrame结构:

a    b
0    20   30
1    44   12 
2    58   23 
3    20   30
4    44   12 
5    58   23
6    20   30
7    44   12 
8    58   23 

预期输出(新增year列):

a    b    year
0    20   30    1995
1    44   12    1995
2    58   23    1995
3    20   30    1996
4    44   12    1996
5    58   23    1996
6    20   30    1997
7    44   12    1997
8    58   23    1997

实现方法

直接用pandas原生的整数除法运算即可,无需写循环,代码简洁性能高:

import pandas as pd

# 核心逻辑:行索引整除3得到分组序号,加上起始值1995得到目标列值
df['year'] = df.index // 3 + 1995

适配调整说明

  • 如果DataFrame索引不是从0开始的连续整数,先执行df = df.reset_index(drop=True)重置索引后再计算,避免结果偏移
  • 如需修改每组的行数,直接替换//后的数字3即可
  • 如需修改列的起始值,替换代码里的1995为目标初始值即可
  • 该方法适配任意行数的DataFrame,即使最后一组不足指定行数也能正常赋值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:30:49