Pandas 데이터 프레임에서 용어 개수별로 그룹화
문제:
다음과 같은 데이터 프레임이 주어졌습니다. 다음 열: id, group 및 term. 목표는 ID와 그룹의 각 고유 조합 내에서 각 용어의 발생 횟수를 결정하는 것입니다.
해결책:
루프 사용을 피하려면 groupby 및 Pandas의 크기 함수:
df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
groupby 함수는 지정된 열(id, group 및 용어), 크기 함수는 각 조합의 발생 횟수를 계산합니다. unstack 함수는 개수가 행렬로 정렬되어 시각적으로 더욱 매력적인 테이블을 생성합니다.
결과는 처음 두 수준이 id와 그룹의 조합을 나타내고 세 번째 수준이 다중 인덱스 열이 있는 테이블입니다. 용어에 해당합니다. 표의 각 셀에는 해당 ID 및 그룹에 대해 특정 용어가 나타나는 횟수가 표시됩니다.
타이밍:
대규모 데이터 세트(예: 1,000,000행)의 경우 , 성능이 뛰어납니다.
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000)))
앞서 언급한 접근 방식을 사용하면 경과시간은 약 1초입니다.
위 내용은 Pandas DataFrame의 그룹 내에서 용어 발생을 효율적으로 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!