데이터 분석에서는 데이터를 그룹화하고 특정 값이나 용어의 발생 횟수를 계산해야 하는 경우가 많습니다. 이러한 유형의 집계는 Pandas의 groupby 및 size 기능을 사용하여 쉽게 달성할 수 있습니다.
문제:
다음 열이 있는 DataFrame df가 있다고 가정합니다: id, 그룹, 용어. 목표는 루프를 사용하지 않고 각 ID와 그룹 조합에 대해 각 고유 용어의 발생 횟수를 계산하는 것입니다.
해결책:
이를 달성하려면 다음 단계를 사용할 수 있습니다.
결과 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') ], columns=['id', 'group', 'term']) result = df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0) print(result)
출력:
term1 term2 term3 id group 1 1 2 1 2 2 2 1 3 1 0
성능:
대규모 데이터 세트의 경우 그룹화 및 크기 작업은 계산 비용이 많이 들 수 있습니다. 다음 코드는 1,000,000개의 행이 있는 DataFrame을 그룹화하고 계산하기 위한 타이밍 통계를 제공합니다.
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000))) %timeit df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
위 내용은 루프를 사용하지 않고 어떻게 Pandas DataFrames 내에서 ID 및 그룹별로 용어 발생을 효율적으로 그룹화하고 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!