如何为含增减区间的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
相关产品推荐
相关产品推荐

