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

Pandas DataFrame如何沿行重复指定数字序列生成新列Y

pandas 沿行循环生成1-5重复序列列的实现方法

不需要写逐行循环逻辑,用numpy向量化运算实现性能更高,两种常用写法如下:

  • 方法1:索引取模法(最简洁)
    直接用行序号对5取模后加1,就能得到循环的1-5序列,不受原索引非连续、不从0开始的影响:
    import pandas as pd
    import numpy as np
    
    # 初始化带X列的DataFrame,此处用示例给出的X值
    df = pd.DataFrame({
        'X': [20,95,86,95,9,19,4,26,66,72,26,5,2,73,73,88,51]
    })
    
    # 生成循环1-5的Y列
    df['Y'] = (np.arange(len(df)) % 5) + 1
    
  • 方法2:序列平铺法
    用np.tile把目标序列整体平铺到足够长度,再切片对齐DataFrame行数,适合循环不是连续数字的自定义序列场景:
    # 定义需要循环的集合
    cycle_set = [1,2,3,4,5]
    # 计算需要平铺的轮次,向上取整保证长度足够
    repeat_times = int(np.ceil(len(df) / len(cycle_set)))
    df['Y'] = np.tile(cycle_set, repeat_times)[:len(df)]
    

两种方法运行后得到的结果完全匹配预期示例:

XY
201
952
863
954
95
191
42
263
664
725
261
52
23
734
735
881
512

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:06:22