>  기사  >  백엔드 개발  >  Pandas GroupBy를 사용하여 열에서 최소값이 있는 행을 찾는 방법은 무엇입니까?

Pandas GroupBy를 사용하여 열에서 최소값이 있는 행을 찾는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-29 00:16:29977검색

How to Find Rows with the Minimum Value in a Column Using Pandas GroupBy?

Pandas GroupBy를 사용하여 열에서 최소값이 있는 행 선택

문제 시나리오

여러 열이 포함된 Pandas DataFrame이 주어지면 작업은 다음을 식별하는 것입니다. 다른 열의 각 고유 값에 대해 특정 열의 최소값이 있는 행을 선택합니다. 예를 들어 A, B, C 열이 있는 DataFrame에서 각 A 값에 대해 최소 B 값이 있는 행을 검색하려고 합니다.

GroupBy 및 idxmin을 사용한 솔루션

간단하고 이 문제를 해결하기 위한 효율적인 접근 방식은 Pandas의 groupby 및 idxmin 기능을 활용하는 것입니다. groupby 함수는 지정된 열을 기준으로 행을 그룹화하는 반면, idxmin은 다른 열에서 최소값이 있는 행의 인덱스를 반환합니다.

<code class="python">df.loc[df.groupby('A').B.idxmin()]</code>

이 코드 줄은 원하는 결과를 얻습니다. 먼저, groupby('A')를 사용하여 DataFrame을 열 A로 그룹화합니다. 그런 다음 B.idxmin() 함수를 각 그룹에 적용합니다. 이 함수는 해당 그룹 내에서 최소 B 값을 가진 행의 인덱스를 반환합니다. 마지막으로 loc 함수를 사용하여 최소 B 값에 해당하는 행을 선택합니다.

데모

다음 DataFrame을 고려하세요.

<code class="python">df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2],
                   'B': [4, 5, 2, 7, 4, 6],
                   'C': [3, 4, 10, 2, 4, 6]})</code>

솔루션 코드를 적용하면 다음이 생성됩니다. 다음 결과:

   A  B   C
2  1  2  10
4  2  4   4

이 출력은 각 고유 A 값(A=1의 경우 2, A=2의 경우 4)에 대한 최소 B 값을 포함하는 행을 보여줍니다.

추가 고려 사항

대안으로, Reset_index(drop=True)를 사용하여 결과 DataFrame에서 인덱스 열을 제거할 수 있습니다.

<code class="python">df.loc[df.groupby('A').B.idxmin()].reset_index(drop=True)</code>

이렇게 하면 필요한 열만 포함된 DataFrame이 제공됩니다. .

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

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