Pandas DataFrame nlargest() 메서드

Beginner

소개

이 랩에서는 Pandas DataFrame 의 nlargest() 메서드를 살펴보겠습니다. 이 메서드를 사용하면 지정된 열 또는 열들을 기준으로 내림차순으로 정렬된 DataFrame 의 상위 N 개 행을 검색할 수 있습니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하세요.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

DataFrame 생성

작업할 샘플 DataFrame 을 생성하는 것으로 시작해 보겠습니다. 다음 코드를 사용하여 이름, 나이, 키 및 몸무게 열이 있는 DataFrame 을 생성합니다.

import pandas as pd

df = pd.DataFrame({'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'],
                   'Age':[20,25,30,18,25,20],
                   'Height':[155,160,175,145,155,165],
                   'Weight':[75,60,75,45,55,65]})

이 코드는 지정된 열과 데이터로 DataFrame 을 생성합니다.

nlargest() 메서드 사용

nlargest() 메서드를 사용하면 지정된 열을 기준으로 상위 N 개 행을 검색할 수 있습니다. 이 메서드를 사용하는 구문은 다음과 같습니다.

df.nlargest(n, columns)
  • n은 반환할 행의 수를 지정하는 정수입니다.
  • columns는 정렬할 열을 나타내는 레이블 또는 레이블 목록입니다.

상위 N 개 행 가져오기

nlargest() 메서드를 사용하여 'Height' 열을 기준으로 상위 2 개 행을 검색해 보겠습니다. 다음 코드를 사용합니다.

top_n_rows = df.nlargest(2, 'Height')
print(top_n_rows)

이 코드는 'Height' 열을 기준으로 정렬된 상위 2 개 행으로 구성된 새로운 DataFrame 을 반환합니다.

다른 열 지정

nlargest() 메서드를 사용하여 다른 열을 기준으로 상위 N 개 행을 검색할 수도 있습니다. 다음 코드를 사용하여 'Age' 열을 기준으로 상위 3 개 행을 검색해 보겠습니다.

top_n_rows = df.nlargest(3, 'Age')
print(top_n_rows)

이 코드는 'Age' 열을 기준으로 정렬된 상위 3 개 행으로 구성된 새로운 DataFrame 을 반환합니다.

Keep 매개변수 지정

중복된 값을 가진 행의 첫 번째 또는 마지막 발생 (occurrence) 을 우선시하기 위해 keep 매개변수를 지정할 수 있습니다. 기본적으로 keep는 'first'로 설정됩니다. 'Height' 열을 기준으로 상위 2 개 행을 검색할 때 keep='last'를 지정해 보겠습니다.

top_n_rows = df.nlargest(2, 'Height', keep='last')
print(top_n_rows)

이 코드는 'Height' 열에서 가장 큰 값을 가진 마지막 2 개 행으로 구성된 새로운 DataFrame 을 반환합니다.

요약

이 랩에서는 Pandas DataFrame 에서 nlargest() 메서드를 사용하는 방법을 배웠습니다. 이 메서드를 사용하여 지정된 열 또는 열들을 기준으로 내림차순으로 정렬된 상위 N 개 행을 검색할 수 있습니다. 또한 keep 매개변수를 지정하여 중복된 값을 가진 행의 첫 번째 또는 마지막 발생 (occurrence) 을 우선시할 수 있습니다. 이 메서드는 특정 기준에 따라 DataFrame 에서 가장 크거나 높은 값을 빠르게 찾는 데 유용합니다.