Python 是否有一种有效的方法将连续递增数据行分类到数据帧中的一个组中
我有一个大致如下的数据集(第一列是索引): 第二列中的My值是依次增加的测量参数,通过这些测量参数的测试循环,在重置之前,在每一步读取读数,然后从头开始 我面临的挑战是,我需要在第四列中用标签对每个周期进行分组Python 是否有一种有效的方法将连续递增数据行分类到数据帧中的一个组中,python,pandas,dataframe,loops,Python,Pandas,Dataframe,Loops,我有一个大致如下的数据集(第一列是索引): 第二列中的My值是依次增加的测量参数,通过这些测量参数的测试循环,在重置之前,在每一步读取读数,然后从头开始 我面临的挑战是,我需要在第四列中用标签对每个周期进行分组 measurement value group 0 1 0.617350 1 1 2 0.394176 1 2 3 0.775822 1 3 1 0.811693 2 4 2 0.621867 2 5 3
measurement value group
0 1 0.617350 1
1 2 0.394176 1
2 3 0.775822 1
3 1 0.811693 2
4 2 0.621867 2
5 3 0.743718 2
6 4 0.183111 2
7 1 0.118586 3
8 2 0.274038 3
9 3 0.871772 3
我能想到的唯一解决方案是有两个嵌套for循环,第一个查找每个测量条件的开始,第二个计数到每个测量条件的结束,然后标记该组。虽然这似乎不是很有效,但我想知道是否有更好的方法?如果以
1开始的每个度量值比较它的值并添加累积和:
df['group'] = df['measurement'].eq(1).cumsum()
太好了,谢谢!我使用布尔索引和shift()对其进行了一些修改,以说明很少有循环不是以相同的值开始的。@dsbbsd9-Glad可以帮助您!如果我的回答有帮助,别忘了。谢谢
df['group'] = df['measurement'].eq(1).cumsum()