문제 개요
pandas 라이브러리의 sort_values() 메서드를 사용하면 DataFrame의 특정 열을 기준으로 데이터를 간단하게 정렬할 수 있습니다. 이 글에서는 Name(이름) 열을 기준으로 데이터를 내림차순(알파벳 역순)으로 정렬하는 Python 프로그램을 작성하는 방법을 알아보겠습니다.
입력 −
다음과 같은 샘플 DataFrame이 있다고 가정합니다.
Id Name
0 1 Adam
1 2 Michael
2 3 David
3 4 Jack
4 5 Peter
출력 −
Name 열을 기준으로 내림차순 정렬하면 결과는 다음과 같습니다.
Id Name
4 5 Peter
1 2 Michael
3 4 Jack
2 3 David
0 1 Adam
해결 방법
이 문제는 다음 두 단계로 해결할 수 있습니다.
먼저 DataFrame을 정의합니다.
sort_values() 메서드에 정렬 기준이 될 열 이름(
by='Name')을 지정하고,ascending=False옵션을 추가하여 데이터를 내림차순으로 정렬합니다.
df.sort_values(by='Name',ascending=False)
참고: sort_values()는 원본 DataFrame을 변경하지 않고 정렬된 새로운 DataFrame을 반환합니다. 만약 원본 데이터 자체를 정렬된 상태로 유지하고 싶다면 inplace=True 옵션을 함께 사용하면 됩니다.
예제
아래 예제를 통해 실제 동작 과정을 자세히 살펴보겠습니다.
import pandas as pd
data = {'Id': [1,2,3,4,5],'Name': ['Adam','Michael','David','Jack','Peter']}
df = pd.DataFrame(data)
print("Before sorting:\n", df)
print("After sorting:\n", df.sort_values(by='Name',ascending=False))
코드 설명
import pandas as pd: pandas 라이브러리를 불러옵니다.딕셔너리 형태의 데이터(Id와 Name 열)를 사용해 DataFrame을 생성합니다.
df.sort_values(by='Name', ascending=False): Name 열의 값을 알파벳 역순(Peter → Michael → Jack → David → Adam)으로 정렬합니다.
실행 결과
Before sorting:
Id Name
0 1 Adam
1 2 Michael
2 3 David
3 4 Jack
4 5 Peter
After sorting:
Id Name
4 5 Peter
1 2 Michael
3 4 Jack
2 3 David
0 1 Adam
실행 결과를 보면 Name 열이 알파벳 역순으로 정렬되었으며, 각 행의 Id 값도 해당 행과 함께 이동한 것을 확인할 수 있습니다. 이처럼 sort_values() 메서드 하나만으로 DataFrame의 원하는 열을 오름차순 또는 내림차순으로 손쉽게 정렬할 수 있습니다.