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

Pandas GroupBy 작업에서 최대 개수의 행을 찾는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-29 19:16:16144검색

How to Find Rows with the Maximum Count in Pandas GroupBy Operations?

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

문제:

행을 식별하는 방법 여러 그룹으로 그룹화할 때 pandas DataFrame의 'count' 열에 대해 가장 높은 값 열?

해결책:

1단계: 각 그룹의 최대 개수 찾기

각 그룹의 최대 개수를 결정하려면 그룹화하려면 groupby() 및 max() 함수를 사용하세요.

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

이렇게 하면 각 그룹의 최대 개수가 포함된 시리즈.

2단계: 최대 개수가 있는 행 식별

원본 DataFrame에서 최대 개수가 있는 행의 인덱스를 가져오려면 , 변환() 메소드를 사용하십시오:

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

이렇게 하면 True가 최대값을 갖는 행을 나타내는 부울 시리즈가 생성됩니다. count.

3단계: 최대 개수를 기준으로 행 필터링

마지막으로 부울 인덱싱을 사용하여 DataFrame을 필터링하여 최대 개수가 있는 행만 선택합니다.

result = df[idx]

이렇게 하면 각 DataFrame 내 'count' 열의 값이 가장 높은 행만 포함된 새 DataFrame이 반환됩니다. 그룹.

예:

예 1:

df = pd.DataFrame({
    'Sp': ['MM1', 'MM1', 'MM1', 'MM2', 'MM2', 'MM2', 'MM4', 'MM4', 'MM4'],
    'Mt': ['S1', 'S1', 'S3', 'S3', 'S4', 'S4', 'S2', 'S2', 'S2'],
    'Value': ['a', 'n', 'cb', 'mk', 'bg', 'dgd', 'rd', 'cb', 'uyi'],
    'count': [3, 2, 5, 8, 10, 1, 2, 2, 7]
})

출력:

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

예 2:

df = pd.DataFrame({
    'Sp': ['MM2', 'MM2', 'MM4', 'MM4', 'MM4'],
    'Mt': ['S4', 'S4', 'S2', 'S2', 'S2'],
    'Value': ['bg', 'dgd', 'rd', 'cb', 'uyi'],
    'count': [10, 1, 2, 8, 8]
})

출력:

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

참고: 그룹 내의 여러 행에 최대 수가 있는 경우, 해당 행이 모두 반환됩니다.

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

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