>백엔드 개발 >파이썬 튜토리얼 >그룹화된 Pandas DataFrame에서 최대 개수의 행을 얻는 방법은 무엇입니까?

그룹화된 Pandas DataFrame에서 최대 개수의 행을 얻는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-20 07:14:12716검색

How to Get Rows with the Maximum Count in Grouped Pandas DataFrames?

그룹화된 Pandas DataFrame에서 최대 개수의 행 가져오기

문제:

Pandas DataFrame에서 다음과 같은 모든 행을 검색합니다. "Sp" 및 "Mt"로 그룹화된 "count" 열의 최대값 columns.

예:

예 1:

입력 데이터 프레임:

Sp Mt Value count
MM1 S1 a 3
MM1 S1 n 2
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 2
MM4 S2 uyi 7

예상됨 출력:

Sp Mt Value count
MM1 S1 a 3
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM4 S2 uyi 7

예 2:

입력 데이터 프레임:

Sp Mt Value count
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 8
MM4 S2 uyi 8

예상됨 출력:

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

해결책:

  1. 그룹당 최대 개수 가져오기:
import pandas as pd

df.groupby(['Sp', 'Mt'])['count'].max()

이렇게 하면 "Sp"와 "Sp"의 각 고유 조합에 대한 최대 수가 포함된 시리즈가 반환됩니다. "Mt".

  1. 부울 마스크 생성:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']

True는 최대 개수가 포함된 행을 나타내는 부울 마스크를 생성합니다. 그룹을 선택하세요.

  1. 필터링 DataFrame:
df[idx]

이렇게 하면 idx 마스크가 True인 행만 포함하도록 DataFrame을 필터링하여 원하는 결과를 얻을 수 있습니다.

참고: 동일한 그룹에 동일한 최대 수가 있는 여러 행이 발생하면 반환됩니다.

위 내용은 그룹화된 Pandas DataFrame에서 최대 개수의 행을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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