>백엔드 개발 >파이썬 튜토리얼 >Pandas는 그룹화된 DataFrame 내에서 용어를 어떻게 효율적으로 계산할 수 있나요?

Pandas는 그룹화된 DataFrame 내에서 용어를 어떻게 효율적으로 계산할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-28 02:36:09842검색

How Can Pandas Efficiently Count Terms within Grouped DataFrames?

그룹화된 DataFrames에서 용어 계산: Pandas 솔루션

이 문서에서는 그룹 내에서 용어를 계산하고 결과를 DataFrame에 요약하는 문제를 다룹니다. . Pandas를 사용하면 비효율적인 루프에 의존하지 않고도 이 작업을 우아하게 해결할 수 있습니다. 다음 DataFrame을 고려하세요.

df = pd.DataFrame([
    (1, 1, 'term1'),
    (1, 2, 'term2'),
    (1, 1, 'term1'),
    (1, 1, 'term2'),
    (2, 2, 'term3'),
    (2, 3, 'term1'),
    (2, 2, 'term1')
])

목표는 'id'와 'group'을 기준으로 그룹화하고 각 'term'의 발생 횟수를 계산하는 것입니다. 이를 달성하기 위해 Pandas는 간결한 솔루션을 제공합니다.

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)

이 작업은 DataFrame을 'id', 'group' 및 'term' 열로 그룹화하고 각 고유 조합의 발생 횟수를 세어 다음을 반환합니다. 다중 인덱스 열과 개수를 포함하는 'size'라는 단일 값 열이 있는 DataFrame을 요약했습니다. 'unstack' 기능은 아래와 같이 DataFrame을 각 고유 용어에 대해 하나의 열이 있는 넓은 형식으로 재구성합니다.

id  group term   size
1   1     term1  3
    1     term2  2
    2     term3  1
2   2     term1  3

타이밍 분석

더 큰 경우 데이터 세트를 사용하려면 이 솔루션의 성능 특성을 이해하는 것이 중요합니다. 이를 평가하려면 다음 코드를 사용하여 생성된 100만 개의 행이 있는 DataFrame을 고려해 보세요.

df = pd.DataFrame(dict(id=np.random.choice(100, 1000000),
                       group=np.random.choice(20, 1000000),
                       term=np.random.choice(10, 1000000)))

그룹화 및 계산 작업을 프로파일링하면 대규모 데이터세트도 효율적으로 처리할 수 있음이 드러납니다.

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)

이러한 성능은 Pandas의 기본 그룹화 및 집계 메커니즘의 최적화된 특성에 기인하며 대규모 작업을 효율적으로 수행하기 위한 탁월한 도구입니다. 데이터 세트.

위 내용은 Pandas는 그룹화된 DataFrame 내에서 용어를 어떻게 효율적으로 계산할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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