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

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

DDD
DDD원래의
2024-12-23 16:57:14269검색

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

Groupby를 사용하여 그룹에서 최대값을 갖는 행 가져오기

데이터 분석을 수행할 때 가장 높은 값을 갖는 행을 식별해야 하는 경우가 종종 있습니다. 다른 열에 의해 정의된 각 그룹 내의 특정 열에 대해. 이 작업은 데이터 조작에 널리 사용되는 Python 라이브러리인 pandas의 groupby() 및 변환() 메서드를 사용하여 편리하게 실행할 수 있습니다.

문제 설명

'Sp', 'Mt', 'Value' 및 'count'와 같은 열이 있는 pandas DataFrame에서 최대 'count' 값을 갖는 행을 추출하는 것을 목표로 합니다. 'Sp' 및 'Mt' 열로 정의된 각 그룹 내에서.

해결 방법

원하는 행을 검색하려면 다음 단계를 사용할 수 있습니다.

  1. 각각의 최대 개수 계산 그룹화:

    • groupby() 메서드를 사용하여 DataFrame을 'Sp' 및 'Mt' 열로 그룹화한 다음 max() 함수를 'count' 열에 적용하여 각 그룹의 최대 개수 값입니다.
  2. 최대값이 있는 행을 식별합니다. 개수:

    • transform() 메서드를 활용하여 각 행에 대해 True/False 부울 계열을 반환합니다. 여기서 'True'는 행이 해당 그룹 내에서 최대 개수 값을 가짐을 나타냅니다.
    • 다음을 사용하여 True 값에 해당하는 원본 DataFrame 행을 검색합니다. indexing.

예 1

다음 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

앞서 언급한 단계 결과 적용 다음 출력에서:

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

다른 DataFrame 사용:

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

대체 접근 방식

대체 접근 방식은 각 그룹의 최대 개수를 나타내는 DataFrame 열입니다. 이는 다음 단계를 사용하여 달성할 수 있습니다.

  1. df.groupby(['Sp', 'Mt'])['count'].max()를 사용하여 각 그룹의 최대 개수를 계산합니다.
  2. df['count_max'] = df.groupby(['Sp', 'Mt'])['count'].transform(max) 표현식.
  3. 'count' 열이 'count_max' 열과 동일한 행만 포함하도록 DataFrame을 필터링합니다.

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

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