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

Pandas의 그룹 내에서 최대 개수 값이 있는 행을 찾는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-26 03:59:091021검색

How to Find Rows with Maximum Count Values within Groups in Pandas?

그룹별 데이터 및 최대 개수 값이 있는 행 검색

그룹 내에서 최대 개수 값이 있는 행을 확인하려면 그룹별 작업을 사용할 수 있습니다. pandas DataFrame.

다음을 고려하세요. DataFrame:

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

예 1:

우리의 목표는 각 그룹(['Sp', 'Mt']로 정의됨) 내의 행을 식별하는 것입니다. 가장 높은 카운트 값. 예제 1에는 다음과 같은 예상 출력이 있습니다.

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

이를 달성하려면 먼저 각 그룹의 최대 개수 값을 얻을 수 있습니다.

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

이 결과는 다음과 같습니다.

Sp Mt
MM1 S1 3
MM1 S3 5
MM2 S3 8
MM2 S4 10
MM4 S2 7

그런 다음 카운트 값이 각 DataFrame의 최대값과 동일한 원본 DataFrame의 인덱스를 추출합니다. group:

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

원하는 출력을 얻습니다.

예 2:

예 2에서 예상되는 출력은 다음과 같습니다.

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

이 시나리오에서는 MM4 그룹 내에 최대 개수의 행이 여러 개 있습니다. 값(8). 이전과 동일한 접근 방식을 사용하여 두 행을 모두 얻습니다.

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

업데이트:

각 그룹 내 최대 개수 값을 나타내는 새 열을 DataFrame에 추가하는 것이 목표인 경우 변환 메서드를 사용하여 각 값을 계산할 수 있습니다. 행:

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

이렇게 하면 각각의 최대 개수 값이 포함된 count_max 열을 포함하는 DataFrame이 생성됩니다. 그룹:

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

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

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