Pandas GroupBy를 사용하여 그룹별 통계 검색
문제
다음과 같은 DataFrame df가 제공됩니다. 여러 열(col1, col2 등)을 사용하려는 경우 해당 열에 있는 각각의 고유한 값 조합에 대해 개수, 평균, 중앙값, 최소값 및 최대값과 같은 그룹 통계를 계산합니다.
접근 방식
Pandas는 포괄적인 그룹별 데이터 분석을 가능하게 하는 groupby 기능입니다. 특정 그룹화 키를 기반으로 데이터를 집계하고 변환할 수 있습니다.
Count
각 그룹의 행 수를 가져오려면 .size() 메서드를 사용하세요. . 각 고유 그룹의 행 개수를 포함하는 시리즈를 반환합니다. 예:
df.groupby(['col1', 'col2']).size()
이 시리즈를 DataFrame으로 변환하려면 .reset_index(name='counts'):
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
다중 통계를 사용할 수 있습니다.
각 그룹에 대한 여러 통계를 계산하려면 .agg() 메서드를 사용하세요. 계산하려는 통계를 열 이름을 키로, 집계 함수를 값으로 사용하여 사전으로 지정할 수 있습니다. 예를 들어 col3 및 col4 열의 평균, 중앙값 및 최소값을 계산하려면:
df.groupby(['col1', 'col2']).agg({ 'col3': ['mean', 'count'], 'col4': ['median', 'min', 'count'] })
통계 결합
다양한 집계를 단일 DataFrame으로 결합하려면 다음을 수행합니다. Join 메소드를 사용할 수 있습니다. 이를 통해 공통 열을 기반으로 여러 DataFrame을 병합할 수 있습니다. 예를 들어 개수, 평균, 중앙값, 최소값을 결합한 결과를 생성하려면 다음과 같이 하세요.
counts = df.groupby(['col1', 'col2']).size().to_frame(name='counts') counts.join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'})) \ .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'})) \ .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'})) \ .reset_index()
위 내용은 Pandas GroupBy를 사용하여 그룹별 통계(개수, 평균, 중앙값, 최소값, 최대값)를 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!