다음과 같은 데이터 프레임이 있으며 클래스 블록에 기반하여 얼마나 많은 유사한 블록이 표시되었는지를 기준으로 전체 블록에 레이블을 붙이려고합니다. 연속적인 클래스 값에 동일한 숫자가 지정됩니다. 같은 클래스 블록이 나중에 나오면 숫자가 증가합니다. 새로운 클래스 블록이 생기면 1
으로 초기화됩니다.팬더에 반복 된 블록 계산하기
df = DataFrame(zip(range(10,30), range(20)), columns = ['a','b'])
df['Class'] = [np.nan, np.nan, np.nan, np.nan, 'a', 'a', 'a', 'a', np.nan, np.nan,'a', 'a', 'a', 'a', 'a', np.nan, np.nan, 'b', 'b','b']
a b Class
0 10 0 NaN
1 11 1 NaN
2 12 2 NaN
3 13 3 NaN
4 14 4 a
5 15 5 a
6 16 6 a
7 17 7 a
8 18 8 NaN
9 19 9 NaN
10 20 10 a
11 21 11 a
12 22 12 a
13 23 13 a
14 24 14 a
15 25 15 NaN
16 26 16 NaN
17 27 17 b
18 28 18 b
19 29 19 b
샘플 출력은 다음과 같습니다
a b Class block_encounter_no
0 10 0 NaN NaN
1 11 1 NaN NaN
2 12 2 NaN NaN
3 13 3 NaN NaN
4 14 4 a 1
5 15 5 a 1
6 16 6 a 1
7 17 7 a 1
8 18 8 NaN NaN
9 19 9 NaN NaN
10 20 10 a 2
11 21 11 a 2
12 22 12 a 2
13 23 13 a 2
14 24 14 a 2
15 25 15 NaN NaN
16 26 16 NaN NaN
17 27 17 b 1
18 28 18 b 1
19 29 19 b 1
. 그러나 마지막 블록은 'b' 블록이 새로운 클래스이므로 1부터 시작해야합니다. – learner
죄송합니다. 이제 답을 수정합니다 - groupby를'Class'로 추가하면 해결할 수 있습니다. – jezrael