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

如何为DataFrame新增列,给指定行区间设置不同取值

实现代码方案

方法1:遍历区间赋值(易读易调整)

# 定义所有需要赋值为0的行号区间(默认行号为0开始的连续索引)
zero_ranges = [(2880, 5760), (12960, 15840), (23040, 25920)]

# 先给新列所有行默认赋值为1
df['col_new'] = 1

# 逐个区间匹配赋值为0
for start, end in zero_ranges:
    df.loc[df.index.between(start, end, inclusive='both'), 'col_new'] = 0

方法2:向量化判断(代码更简洁)

import numpy as np

df['col_new'] = np.where(
    (df.index.between(2880,5760)) | (df.index.between(12960,15840)) | (df.index.between(23040,25920)),
    0,
    1
)

注意事项

  • 如果你提到的行号是从1开始计数的自然行号,把所有区间的起止值各减1即可,调整后的区间为[(2879, 5759), (12959, 15839), (23039, 25919)]
  • 如果你的df当前索引不是0开始的连续整数,先执行重置索引操作再运行上面的代码:df = df.reset_index(drop=True)
  • 两种方案都完全适配28800行的数据规模,无性能问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:36:04