首页 > 解决方案 > 有没有一种有效的方法可以将连续增加的数据行分类为熊猫数据框中的一组

问题描述

我有一个大致如下所示的数据集(第一列是索引):

measurement value
0   1   0.617350
1   2   0.394176
2   3   0.775822
3   1   0.811693
4   2   0.621867
5   3   0.743718
6   4   0.183111
7   1   0.118586
8   2   0.274038
9   3   0.871772

我在第二列中的值是按顺序增加测量参数,测试循环通过这些测量参数,在每一步读取读数,然后重新设置并从头开始。

我面临的挑战是我需要在第四列中用标签对每个周期进行分组。

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 循环,第一个找到每个测量条件的开始,第二个计数到每个测量条件的结尾,然后标记该组。这似乎不是很有效,我想知道是否有更好的方法?

标签: pythonpandasdataframeloops

解决方案


如果每个度量从1比较值开始并添加累积和:

df['group'] = df['measurement'].eq(1).cumsum()

推荐阅读