在pandas dataframe中基于索引值按行间隔生成分组set_id编号
Pandas 按固定行数分组更新set_id列实现方案
你可以直接利用整数除法的特性实现分组编号,核心思路是对行号做每n个为一组的整除运算,再将结果加1即可得到从1开始的连续组id。
实现代码
适用场景1:DataFrame索引为从0开始的连续整数
# n为每组包含的行数,示例中n=2 n = 2 df['set_id'] = (df.index // n) + 1
适用场景2:索引不连续/索引不是从0开始
如果你的DataFrame索引不符合连续从0开始的要求,可以用numpy.arange生成临时行号计算:
import numpy as np n = 2 df['set_id'] = (np.arange(len(df)) // n) + 1
完整测试示例
import pandas as pd # 构造你提供的原始DataFrame data = { "name": ["name0", "name1", "name2", "name3", "name4", "name5"], "qty1": [2, 1, 0, 6, 8, 0], "qty2": [5, 7, 4, 6, 8, 3], "set_id": [1000]*6 } df = pd.DataFrame(data) # 执行更新操作 n = 2 df['set_id'] = (df.index // n) + 1 print(df)
运行后输出的结果和你给出的预期效果完全一致。
内容的提问来源于stack exchange,提问作者Nithyananda Shetty
相关产品推荐
相关产品推荐

