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

如何为含增减区间的DataFrame生成可指定结束值的周期索引列

问题:为Pandas DataFrame添加区间标记ID列

现有如下Pandas DataFrame:

import pandas as pd

data = {'column1': [1, 2, 3, 4, 5,4,3,2,1,1, 2, 3, 4, 5,4,3,2,1]}
df = pd.DataFrame(data)

生成的DataFrame如下:

column1
0         1
1         2
2         3
3         4
4         5
5         4
6         3
7         2
8         1
9         1
10        2
11        3
12        4
13        5
14        4
15        3
16        2
17        1

需要新增一个索引列ID,用于标记column1中从1开始,经历递增后递减至指定结束值的区间:

示例1:指定结束值为1时的结果

column1  ID
0         1   1
1         2   1
2         3   1
3         4   1
4         5   1
5         4   1
6         3   1
7         2   1
8         1   1
9         1   2
10        2   2
11        3   2
12        4   2
13        5   2
14        4   2
15        3   2
16        2   2
17        1   2

示例2:指定结束值为3时的结果

column1  ID
0         1   1
1         2   1
2         3   1
3         4   1
4         5   1
5         4   1
6         3   2
7         2   2
8         1   2
9         1   2
10        2   2
11        3   3
12        4   3
13        5   3
14        4   3
15        3   4
16        2   4
17        1   4

遇到的问题

曾尝试用布尔掩码识别1作为起始点并使用cumsum()递增ID,但每次遇到1都会触发递增,不符合需求——仅当从1开始递增后再递减至指定值时才递增ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:12:33