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

如何在Pandas DataFrame中每N行后递增Level列的值

如何在Pandas DataFrame中每N行递增特定列的值

你可以利用Pandas的矢量化操作高效实现需求,完全不需要写循环,这种方法在处理1000行甚至更大数据集时,性能远优于循环写法。

核心思路

通过对DataFrame索引做整数除法,将数据按指定行数(示例为5行、实际需求为100行)分组,每组对应一个递增基准值,再加上初始值即可得到Level列。

示例实现(按5行分组,初始值6)

import pandas as pd

# 原始数据
data  = {'displayName':['Kelsier', 'Val', 'Elend', 'Dock','Club','Renox','Sher','Breeze','Saze','Reen','Mist','Atium','Iron','Copper','Tin'],
        'pic' : ["av10", "av12", "av14", "av15", "av0", "av1", "av18", "av8", "av16", "av22", "av40", "av24", "av17", "av2", "av7"]}
        
df = pd.DataFrame(data)

# 生成Level列:索引整除5得到组号,加初始值6
df['level'] = (df.index // 5) + 6

print(df)

运行结果与你期望的完全一致:

displayName   pic  level
0      Kelsier  av10      6
1          Val  av12      6
2         Elend  av14      6
3          Dock  av15      6
4          Club   av0      6
5         Renox   av1      7
6          Sher  av18      7
7        Breeze   av8      7
8          Saze  av16      7
9          Reen  av22      7
10         Mist  av40      8
11        Atium  av24      8
12         Iron  av17      8
13        Copper   av2      8
14          Tin   av7      8

适配实际需求(1000行,每100行递增,初始值6)

只需将代码中的5替换为100:

df['level'] = (df.index // 100) + 6

为什么不用循环?

Pandas的矢量化操作基于底层C实现,处理批量数据时比Python循环快几个数量级,面对1000行数据集时,这种写法既简洁又高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:45:37