>백엔드 개발 >파이썬 튜토리얼 >Pandas의 그룹화된 데이터에 순차적 카운터 열을 효율적으로 추가하는 방법은 무엇입니까?

Pandas의 그룹화된 데이터에 순차적 카운터 열을 효율적으로 추가하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-24 14:04:15896검색

How to Efficiently Add a Sequential Counter Column to Grouped Data in Pandas?

Pandas DataFrame의 그룹에 순차 카운터 열 추가

데이터 랭글링의 맥락에서 순차 카운터를 추가하는 일반적인 작업이 있습니다. Pandas 데이터 프레임 내의 그룹에 대한 열입니다. 한 가지 접근 방식은 앞서 설명한 대로 콜백 함수를 사용하는 것입니다.

def callback(x):
    x['seq'] = range(1, x.shape[0] + 1)
    return x

이 방법은 작동하지만 번거로울 수 있으며 별도의 함수를 정의해야 합니다. 더 간결하고 우아한 해결책은 cumcount() 메서드를 활용하는 것입니다.

df.groupby(['c1', 'c2']).cumcount()

이 메서드는 각 그룹의 누적 개수를 계산하여 그룹 내의 각 행에 효과적으로 일련 번호를 할당합니다. 예를 들어 다음 데이터 프레임을 고려해보세요.

index c1 c2 v1
0 A X 3
1 A X 5
2 A Y 7
3 A Y 1
4 B X 3
5 B X 1
6 B X 3
7 B Y 1
8 C X 7
9 C Y 4
10 C Y 1
11 C Y 6

c1과 c2로 그룹화된 이 데이터 프레임에 cumcount()를 적용하면 다음이 생성됩니다.

index c1 c2 v1 seq
0 A X 3 1
1 A X 5 2
2 A Y 7 1
3 A Y 1 2
4 B X 3 1
5 B X 1 2
6 B X 3 3
7 B Y 1 1
8 C X 7 1
9 C Y 4 1
10 C Y 1 2
11 C Y 6 3

대신 1에서 주문을 시작하려면 0의 경우 cumcount() 결과에 1을 추가하면 됩니다.

df.groupby(['c1', 'c2']).cumcount() + 1

위 내용은 Pandas의 그룹화된 데이터에 순차적 카운터 열을 효율적으로 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.