PROGRESS
11 / 12
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 11 #275
특정 열을 기준으로 데이터를 내림차순(큰 값부터) 정렬하는 코드를 완성하세요.
main.py
import pandas as pd
df = pd.DataFrame({
'이름': ['민수', '영희', '지우', '현아'],
'점수': [85, 92, 78, 95]
})
# '점수' 열을 기준으로 값이 큰 순서대로 정렬합니다.
df2 = df.(by='점수', ascending=False)
print(df2)
HINT
힌트: 값을 정렬한다는 의미의 영어 단어(sort)와 값들(values)을 합친 함수명 sort_valus()을 사용합니다.
실행 결과 예시
이름 점수 3 현아 95 1 영희 92 0 민수 85 2 지우 78
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
sort_values()로 데이터 정렬하기
sort_values()는 특정 열의 값을 기준으로 행 전체를 재배치하는 함수입니다.
기본 문법
df.sort_values(by="열이름", ascending=True/False)
ascending 옵션
| 값 | 의미 | 정렬 순서 |
|---|---|---|
True (기본값) |
오름차순 | 작은 값 → 큰 값 |
False |
내림차순 | 큰 값 → 작은 값 |
코드 동작 과정
df2 = df.sort_values(by='점수', ascending=False)
정렬 전: 정렬 후 (내림차순):
이름 점수 이름 점수
0 민수 85 3 하은 95 ← 가장 높음
1 서희 92 1 서희 92
2 지연 78 0 민수 85
3 하은 95 2 지연 78 ← 가장 낮음
인덱스 번호 유지
정렬 후에도 원래의 인덱스 번호가 유지됩니다. 하은의 인덱스는 여전히 3번입니다.
인덱스를 새로 매기려면:
df2 = df.sort_values(by='점수', ascending=False).reset_index(drop=True)
# 이름 점수
# 0 하은 95 ← 인덱스 0으로 재설정
# 1 서희 92
# ...
다양한 정렬 예시
# 오름차순 (기본값, ascending 생략 가능)
df.sort_values(by='점수')
# 내림차순
df.sort_values(by='점수', ascending=False)
# 여러 열 기준 정렬 (1순위: 학년, 2순위: 점수)
df.sort_values(by=['학년', '점수'], ascending=[True, False])
np.sort() vs sort_values() 비교
| 비교 | np.sort() | df.sort_values() |
|---|---|---|
| 대상 | 넘파이 배열 | 판다스 데이터프레임 |
| 정렬 기준 | 배열 값 자체 | 특정 열(by 옵션) |
| 내림차순 | [::-1] 사용 |
ascending=False |
💡 핵심:
by로 기준 열을,ascending으로 정렬 방향을 지정합니다.