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

在R语言中将序列起始值重置为1:调整dataframe的start和end列

调整DataFrame区间起始值的实现方案

需求分析

现有包含start和end列的DataFrame,需将第一行的start值改为1,同时保持每个区间的长度不变,后续区间依次衔接。原数据如下:

> df1
  start end
1     5   7
2     8  12
3    13  15
4    16  20

期望转换为:

> df2
  start end
1     1   3
2     4   8
3     9  11
4    12  16

实现代码

利用Pandas可快速完成转换,核心是计算偏移量并统一调整所有区间的起止值:

import pandas as pd

# 构造原始DataFrame
df1 = pd.DataFrame({
    'start': [5, 8, 13, 16],
    'end': [7, 12, 15, 20]
})

# 计算偏移量:将第一个start调整为1所需的差值
offset = 1 - df1.iloc[0]['start']

# 复制数据并应用偏移量
df2 = df1.copy()
df2['start'] += offset
df2['end'] += offset

print(df2)

逻辑说明

原数据的区间是连续衔接的(前一行end+1等于后一行start),因此只需给所有start和end值加上1与第一个起始值的差值,即可让第一个区间起始变为1,同时保留所有区间的长度和衔接关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:31:31