모든 예제에는 Pandas 출력에서 한글과 표 너비가 보기 좋도록
pd.set_option("display.unicode.east_asian_width", True)를 포함했습니다.각 예제는 서로 다른 실생활 데이터를 DataFrame으로 만들고, 실행 결과와 상세 설명을 함께 제공합니다.
데이터 정렬
1. 1. 학생 성적 총점 기준 내림차순 정렬
핵심 개념: sort_values(), ascending=False, 여러 열 계산
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤"],
"국어": [88, 92, 75, 95, 81],
"수학": [91, 85, 80, 90, 88],
"영어": [84, 96, 78, 93, 86]
})
df["총점"] = df["국어"] + df["수학"] + df["영어"]
result = df.sort_values("총점", ascending=False)
print(result)
🖥️ 코드 실행 결과
이름 국어 수학 영어 총점
3 하은 95 90 93 278
1 서연 92 85 96 273
0 민준 88 91 84 263
4 도윤 81 88 86 255
2 지후 75 80 78 233
상세 설명
국어, 수학, 영어 점수를 합산해 총점 열을 만들고, 총점이 높은 학생부터 내림차순으로 정렬합니다. 성적 우수자 순위를 만들 때 사용하는 기본 패턴입니다.
국어, 수학, 영어 점수를 합산해 총점 열을 만들고, 총점이 높은 학생부터 내림차순으로 정렬합니다. 성적 우수자 순위를 만들 때 사용하는 기본 패턴입니다.
데이터 정렬
2. 2. 상품 가격 오름차순 정렬
핵심 개념: sort_values(), 가격 비교
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"상품": ["노트", "볼펜", "파일", "형광펜", "스티커"],
"가격": [2500, 900, 1800, 1200, 3000],
"재고": [30, 80, 45, 60, 20]
})
result = df.sort_values("가격")
print(result)
🖥️ 코드 실행 결과
상품 가격 재고
1 볼펜 900 80
3 형광펜 1200 60
2 파일 1800 45
0 노트 2500 30
4 스티커 3000 20
상세 설명
가격이 낮은 상품부터 오름차순으로 정렬합니다. 쇼핑몰에서 저가순 정렬을 구현할 때 같은 원리를 사용합니다.
가격이 낮은 상품부터 오름차순으로 정렬합니다. 쇼핑몰에서 저가순 정렬을 구현할 때 같은 원리를 사용합니다.
데이터 정렬
3. 3. 병원 예약 시간 순서 정렬
핵심 개념: 문자열 시간 정렬, 예약표
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"환자": ["김철수", "이영희", "박민수", "최서아"],
"진료과": ["내과", "치과", "안과", "피부과"],
"예약시간": ["14:30", "09:20", "11:00", "10:10"]
})
result = df.sort_values("예약시간")
print(result)
🖥️ 코드 실행 결과
환자 진료과 예약시간
1 이영희 치과 09:20
3 최서아 피부과 10:10
2 박민수 안과 11:00
0 김철수 내과 14:30
상세 설명
HH:MM 형식의 시간 문자열은 앞자리부터 비교되므로 예약시간 순서대로 정렬할 수 있습니다. 실제 병원 예약표나 상담 예약표에 활용할 수 있습니다.
HH:MM 형식의 시간 문자열은 앞자리부터 비교되므로 예약시간 순서대로 정렬할 수 있습니다. 실제 병원 예약표나 상담 예약표에 활용할 수 있습니다.
데이터 정렬
4. 4. 도서 대출 횟수 기준 인기 도서 정렬
핵심 개념: 내림차순 정렬, 상위 인기 항목
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"도서명": ["수학의 정석", "어린 왕자", "파이썬 입문", "과학 콘서트", "한국사 이야기"],
"분야": ["수학", "문학", "코딩", "과학", "역사"],
"대출횟수": [42, 85, 73, 55, 60]
})
result = df.sort_values("대출횟수", ascending=False)
print(result)
🖥️ 코드 실행 결과
도서명 분야 대출횟수
1 어린 왕자 문학 85
2 파이썬 입문 코딩 73
4 한국사 이야기 역사 60
3 과학 콘서트 과학 55
0 수학의 정석 수학 42
상세 설명
대출횟수가 많은 책부터 정렬하여 인기 도서를 확인합니다. 도서관 추천 목록이나 인기 자료 분석에 적합합니다.
대출횟수가 많은 책부터 정렬하여 인기 도서를 확인합니다. 도서관 추천 목록이나 인기 자료 분석에 적합합니다.
데이터 정렬
5. 5. 음식 칼로리 낮은 순 정렬
핵심 개념: 건강 데이터, 오름차순 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"음식": ["김밥", "라면", "샐러드", "비빔밥", "떡볶이"],
"칼로리": [420, 510, 180, 650, 480],
"단백질": [12, 10, 8, 20, 9]
})
result = df.sort_values("칼로리", ascending=True)
print(result)
🖥️ 코드 실행 결과
음식 칼로리 단백질
2 샐러드 180 8
0 김밥 420 12
4 떡볶이 480 9
1 라면 510 10
3 비빔밥 650 20
상세 설명
칼로리가 낮은 음식부터 정렬합니다. 식단 관리 앱에서 저칼로리 음식 추천을 만들 때 사용할 수 있는 정렬 방식입니다.
칼로리가 낮은 음식부터 정렬합니다. 식단 관리 앱에서 저칼로리 음식 추천을 만들 때 사용할 수 있는 정렬 방식입니다.
데이터 정렬
6. 6. 버스 도착 예정 시간 정렬
핵심 개념: 교통 데이터, 분 단위 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"버스번호": ["101", "165", "72", "5001", "3-1"],
"정류장": ["전북대", "전주역", "객사", "한옥마을", "시청"],
"도착예정분": [12, 5, 18, 3, 9]
})
result = df.sort_values("도착예정분")
print(result)
🖥️ 코드 실행 결과
버스번호 정류장 도착예정분
3 5001 한옥마을 3
1 165 전주역 5
4 3-1 시청 9
0 101 전북대 12
2 72 객사 18
상세 설명
도착예정분이 작은 버스부터 정렬합니다. 실시간 버스 도착 알림에서 가장 빨리 오는 버스를 찾는 데 유용합니다.
도착예정분이 작은 버스부터 정렬합니다. 실시간 버스 도착 알림에서 가장 빨리 오는 버스를 찾는 데 유용합니다.
데이터 정렬
7. 7. 미세먼지 농도 높은 순 정렬
핵심 개념: 환경 데이터, 위험도 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"지역": ["서울", "전주", "부산", "대구", "광주"],
"미세먼지": [42, 35, 29, 50, 38],
"초미세먼지": [21, 18, 15, 27, 20]
})
result = df.sort_values("미세먼지", ascending=False)
print(result)
🖥️ 코드 실행 결과
지역 미세먼지 초미세먼지
3 대구 50 27
0 서울 42 21
4 광주 38 20
1 전주 35 18
2 부산 29 15
상세 설명
미세먼지 농도가 높은 지역부터 정렬합니다. 환경 데이터에서 주의가 필요한 지역을 빠르게 찾는 데 사용합니다.
미세먼지 농도가 높은 지역부터 정렬합니다. 환경 데이터에서 주의가 필요한 지역을 빠르게 찾는 데 사용합니다.
데이터 정렬
8. 8. 두 조건 정렬: 학급과 점수
핵심 개념: 여러 열 정렬, ascending 리스트
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"학급": ["1반", "2반", "1반", "2반", "1반", "2반"],
"이름": ["민준", "서연", "지후", "하은", "도윤", "유나"],
"점수": [88, 95, 92, 85, 92, 95]
})
result = df.sort_values(["학급", "점수"], ascending=[True, False])
print(result)
🖥️ 코드 실행 결과
학급 이름 점수
2 1반 지후 92
4 1반 도윤 92
0 1반 민준 88
1 2반 서연 95
5 2반 유나 95
3 2반 하은 85
상세 설명
먼저 학급을 오름차순으로 정렬하고, 같은 학급 안에서는 점수가 높은 순으로 정렬합니다. 여러 기준을 동시에 적용하는 고급 정렬입니다.
먼저 학급을 오름차순으로 정렬하고, 같은 학급 안에서는 점수가 높은 순으로 정렬합니다. 여러 기준을 동시에 적용하는 고급 정렬입니다.
데이터 정렬
9. 9. 날짜 기준 지출 내역 정렬
핵심 개념: 날짜 변환, sort_values()
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"날짜": ["2026-05-03", "2026-05-01", "2026-05-04", "2026-05-02"],
"항목": ["간식", "교통", "도서", "문구"],
"금액": [8000, 3000, 15000, 5000]
})
df["날짜"] = pd.to_datetime(df["날짜"])
result = df.sort_values("날짜")
print(result)
🖥️ 코드 실행 결과
날짜 항목 금액
1 2026-05-01 교통 3000
3 2026-05-02 문구 5000
0 2026-05-03 간식 8000
2 2026-05-04 도서 15000
상세 설명
날짜 문자열을 datetime으로 변환한 뒤 날짜 순서대로 정렬합니다. 가계부, 지출 내역, 출석 기록 등에서 많이 사용합니다.
날짜 문자열을 datetime으로 변환한 뒤 날짜 순서대로 정렬합니다. 가계부, 지출 내역, 출석 기록 등에서 많이 사용합니다.
데이터 정렬
10. 10. 결측치가 있는 성적 정렬
핵심 개념: na_position, 결측치 정렬 위치
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤"],
"과제점수": [90, None, 75, 88, None]
})
result = df.sort_values("과제점수", ascending=False, na_position="last")
print(result)
🖥️ 코드 실행 결과
이름 과제점수
0 민준 90.0
3 하은 88.0
2 지후 75.0
1 서연 NaN
4 도윤 NaN
상세 설명
결측치가 있는 과제점수를 정렬하면서 NaN은 마지막에 배치합니다. 미제출 학생을 아래쪽에 두고 제출자 점수 순위를 먼저 볼 수 있습니다.
결측치가 있는 과제점수를 정렬하면서 NaN은 마지막에 배치합니다. 미제출 학생을 아래쪽에 두고 제출자 점수 순위를 먼저 볼 수 있습니다.
데이터 탐색
11. 1. 점수 90점 이상 학생 찾기
핵심 개념: 조건 필터링, Boolean indexing
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤"],
"점수": [88, 95, 72, 91, 84],
"반": ["1반", "1반", "2반", "2반", "1반"]
})
result = df[df["점수"] >= 90]
print(result)
🖥️ 코드 실행 결과
이름 점수 반
1 서연 95 1반
3 하은 91 2반
상세 설명
점수가 90점 이상인 행만 필터링합니다. Boolean indexing은 DataFrame 탐색에서 가장 중요한 기본 문법입니다.
점수가 90점 이상인 행만 필터링합니다. Boolean indexing은 DataFrame 탐색에서 가장 중요한 기본 문법입니다.
데이터 탐색
12. 2. 특정 지역 날씨 데이터 찾기
핵심 개념: 문자열 일치 조건
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"지역": ["서울", "전주", "부산", "대구", "광주"],
"기온": [21, 24, 22, 25, 23],
"강수확률": [20, 40, 30, 10, 35]
})
result = df[df["지역"] == "전주"]
print(result)
🖥️ 코드 실행 결과
지역 기온 강수확률
1 전주 24 40
상세 설명
지역 열에서 값이 전주인 행만 찾습니다. 지역 검색, 학교 검색, 상품명 검색 등 정확히 일치하는 값을 찾을 때 사용합니다.
지역 열에서 값이 전주인 행만 찾습니다. 지역 검색, 학교 검색, 상품명 검색 등 정확히 일치하는 값을 찾을 때 사용합니다.
데이터 탐색
13. 3. 상품명에 특정 글자 포함 검색
핵심 개념: str.contains(), na=False
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"상품": ["사과주스", "바나나우유", "포도젤리", None, "딸기라떼"],
"가격": [1800, 1500, 1200, 900, 2500]
})
result = df[df["상품"].str.contains("나", na=False)]
print(result)
🖥️ 코드 실행 결과
상품 가격
1 바나나우유 1500
상세 설명
문자열에 '나'가 포함된 상품을 찾습니다. na=False를 넣으면 None이 있어도 오류 없이 False로 처리되어 안전합니다.
문자열에 '나'가 포함된 상품을 찾습니다. na=False를 넣으면 None이 있어도 오류 없이 False로 처리되어 안전합니다.
데이터 탐색
14. 4. 여러 조건으로 건강 데이터 탐색
핵심 개념: AND 조건, 괄호 사용
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤"],
"걸음수": [6500, 12000, 8500, 15000, 4000],
"수면시간": [6.5, 7.5, 5.5, 8.0, 6.0]
})
result = df[(df["걸음수"] >= 8000) & (df["수면시간"] >= 7)]
print(result)
🖥️ 코드 실행 결과
이름 걸음수 수면시간
1 서연 12000 7.5
3 하은 15000 8.0
상세 설명
걸음수 8000 이상이면서 수면시간 7시간 이상인 사람을 찾습니다. 여러 조건을 연결할 때는 각 조건을 괄호로 감싸고 &를 사용합니다.
걸음수 8000 이상이면서 수면시간 7시간 이상인 사람을 찾습니다. 여러 조건을 연결할 때는 각 조건을 괄호로 감싸고 &를 사용합니다.
데이터 탐색
15. 5. 특정 범위 가격 상품 찾기
핵심 개념: between(), 범위 탐색
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"상품": ["노트", "가방", "필통", "이어폰", "USB"],
"가격": [2500, 35000, 8000, 29000, 15000]
})
result = df[df["가격"].between(5000, 30000)]
print(result)
🖥️ 코드 실행 결과
상품 가격
2 필통 8000
3 이어폰 29000
4 USB 15000
상세 설명
가격이 5000원 이상 30000원 이하인 상품만 찾습니다. 쇼핑몰 가격 범위 검색과 같은 방식입니다.
가격이 5000원 이상 30000원 이하인 상품만 찾습니다. 쇼핑몰 가격 범위 검색과 같은 방식입니다.
데이터 탐색
16. 6. 결측치가 있는 행 찾기
핵심 개념: isna(), 결측치 탐색
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은"],
"이메일": ["min@example.com", None, "ji@example.com", None],
"연락처": ["010-1111", "010-2222", None, "010-4444"]
})
result = df[df["이메일"].isna() | df["연락처"].isna()]
print(result)
🖥️ 코드 실행 결과
이름 이메일 연락처
1 서연 None 010-2222
2 지후 ji@example.com None
3 하은 None 010-4444
상세 설명
이메일 또는 연락처가 비어 있는 행을 찾습니다. 회원 정보 검수나 데이터 전처리에서 결측치 탐색은 매우 중요합니다.
이메일 또는 연락처가 비어 있는 행을 찾습니다. 회원 정보 검수나 데이터 전처리에서 결측치 탐색은 매우 중요합니다.
데이터 탐색
17. 7. 인기 동영상 조회수 상위 조건 탐색
핵심 개념: 조건 필터링, 조회수
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"제목": ["과학실험", "수학풀이", "코딩입문", "역사이야기", "영어회화"],
"조회수": [1200, 850, 3200, 600, 2500],
"좋아요": [150, 90, 410, 45, 300]
})
result = df[df["조회수"] >= 2000]
print(result)
🖥️ 코드 실행 결과
제목 조회수 좋아요
2 코딩입문 3200 410
4 영어회화 2500 300
상세 설명
조회수가 2000 이상인 동영상을 찾습니다. 콘텐츠 분석에서 인기 콘텐츠만 골라낼 때 사용합니다.
조회수가 2000 이상인 동영상을 찾습니다. 콘텐츠 분석에서 인기 콘텐츠만 골라낼 때 사용합니다.
데이터 탐색
18. 8. isin으로 여러 값 한 번에 찾기
핵심 개념: isin(), 다중 값 탐색
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"학생": ["민준", "서연", "지후", "하은", "도윤"],
"동아리": ["코딩", "과학", "축구", "코딩", "밴드"],
"학년": [1, 2, 1, 3, 2]
})
result = df[df["동아리"].isin(["코딩", "과학"])]
print(result)
🖥️ 코드 실행 결과
학생 동아리 학년
0 민준 코딩 1
1 서연 과학 2
3 하은 코딩 3
상세 설명
동아리가 코딩 또는 과학인 학생을 찾습니다. 여러 값 중 하나에 해당하는 데이터를 찾을 때 isin()을 사용합니다.
동아리가 코딩 또는 과학인 학생을 찾습니다. 여러 값 중 하나에 해당하는 데이터를 찾을 때 isin()을 사용합니다.
데이터 탐색
19. 9. query를 이용한 간결한 조건 탐색
핵심 개념: query(), 조건식 문자열
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"지역": ["서울", "전주", "부산", "대구"],
"기온": [21, 24, 22, 26],
"습도": [60, 70, 75, 55]
})
result = df.query("기온 >= 23 and 습도 >= 60")
print(result)
🖥️ 코드 실행 결과
지역 기온 습도
1 전주 24 70
상세 설명
query()는 조건을 문자열로 작성해 데이터를 탐색합니다. 조건이 길어질 때 코드가 비교적 읽기 쉬워집니다.
query()는 조건을 문자열로 작성해 데이터를 탐색합니다. 조건이 길어질 때 코드가 비교적 읽기 쉬워집니다.
데이터 탐색
20. 10. 특정 열만 선택해서 결과 보기
핵심 개념: loc, 조건 + 열 선택
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤"],
"점수": [88, 95, 72, 91, 84],
"출석률": [98, 100, 85, 96, 92]
})
result = df.loc[df["점수"] >= 90, ["이름", "점수"]]
print(result)
🖥️ 코드 실행 결과
이름 점수
1 서연 95
3 하은 91
상세 설명
조건을 만족하는 행 중에서 이름과 점수 열만 선택합니다. loc는 행 조건과 열 선택을 동시에 할 수 있어 실무에서 자주 사용됩니다.
조건을 만족하는 행 중에서 이름과 점수 열만 선택합니다. loc는 행 조건과 열 선택을 동시에 할 수 있어 실무에서 자주 사용됩니다.
정렬과 탐색 조합
21. 1. 90점 이상 학생을 점수 높은 순으로 정렬
핵심 개념: 필터링 후 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤", "유나"],
"점수": [88, 95, 72, 91, 84, 98],
"반": ["1반", "1반", "2반", "2반", "1반", "2반"]
})
filtered = df[df["점수"] >= 90]
result = filtered.sort_values("점수", ascending=False)
print(result)
🖥️ 코드 실행 결과
이름 점수 반
5 유나 98 2반
1 서연 95 1반
3 하은 91 2반
상세 설명
먼저 90점 이상 학생만 탐색하고, 그 결과를 점수 높은 순으로 정렬합니다. 조건 탐색과 순위 정렬이 결합된 대표 예제입니다.
먼저 90점 이상 학생만 탐색하고, 그 결과를 점수 높은 순으로 정렬합니다. 조건 탐색과 순위 정렬이 결합된 대표 예제입니다.
정렬과 탐색 조합
22. 2. 3만원 이하 상품을 가격 낮은 순으로 정렬
핵심 개념: between() + sort_values()
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"상품": ["노트북가방", "필통", "이어폰", "USB", "마우스"],
"가격": [42000, 8000, 29000, 15000, 26000],
"재고": [10, 30, 15, 50, 20]
})
filtered = df[df["가격"].between(5000, 30000)]
result = filtered.sort_values("가격")
print(result)
🖥️ 코드 실행 결과
상품 가격 재고
1 필통 8000 30
3 USB 15000 50
4 마우스 26000 20
2 이어폰 29000 15
상세 설명
가격 범위 조건으로 상품을 찾은 뒤 가격 오름차순으로 정렬합니다. 쇼핑몰의 가격 필터와 저가순 정렬을 함께 구현한 예제입니다.
가격 범위 조건으로 상품을 찾은 뒤 가격 오름차순으로 정렬합니다. 쇼핑몰의 가격 필터와 저가순 정렬을 함께 구현한 예제입니다.
정렬과 탐색 조합
23. 3. 미세먼지 35 이상 지역을 높은 순으로 정렬
핵심 개념: 환경 데이터 탐색 + 위험도 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"지역": ["서울", "전주", "부산", "대구", "광주", "인천"],
"미세먼지": [42, 35, 29, 50, 38, 45],
"초미세먼지": [21, 18, 15, 27, 20, 25]
})
filtered = df[df["미세먼지"] >= 35]
result = filtered.sort_values("미세먼지", ascending=False)
print(result)
🖥️ 코드 실행 결과
지역 미세먼지 초미세먼지
3 대구 50 27
5 인천 45 25
0 서울 42 21
4 광주 38 20
1 전주 35 18
상세 설명
주의가 필요한 지역만 먼저 찾고, 그중에서도 미세먼지가 높은 지역부터 정렬합니다. 환경 경보 데이터 분석에 적합합니다.
주의가 필요한 지역만 먼저 찾고, 그중에서도 미세먼지가 높은 지역부터 정렬합니다. 환경 경보 데이터 분석에 적합합니다.
정렬과 탐색 조합
24. 4. 코딩 동아리 학생을 학년순·이름순 정렬
핵심 개념: isin/조건 + 다중 열 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"학생": ["민준", "서연", "지후", "하은", "도윤", "유나"],
"동아리": ["코딩", "과학", "코딩", "코딩", "밴드", "코딩"],
"학년": [2, 1, 1, 3, 2, 1]
})
filtered = df[df["동아리"] == "코딩"]
result = filtered.sort_values(["학년", "학생"])
print(result)
🖥️ 코드 실행 결과
학생 동아리 학년
5 유나 코딩 1
2 지후 코딩 1
0 민준 코딩 2
3 하은 코딩 3
상세 설명
코딩 동아리 학생만 탐색한 뒤 학년, 학생 이름 순으로 정렬합니다. 명단 정리나 동아리 관리 자료에 적합합니다.
코딩 동아리 학생만 탐색한 뒤 학년, 학생 이름 순으로 정렬합니다. 명단 정리나 동아리 관리 자료에 적합합니다.
정렬과 탐색 조합
25. 5. 결측치 없는 회원만 최근 가입순 정렬
핵심 개념: notna(), 날짜 변환, 정렬
🐍 파이썬 코드
import pandas as pd
# Pandas 출력에서 한글/열 너비가 잘 보이도록 설정
pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.width", 120)
pd.set_option("display.max_columns", 20)
df = pd.DataFrame({
"이름": ["민준", "서연", "지후", "하은", "도윤"],
"이메일": ["min@example.com", None, "ji@example.com", "ha@example.com", None],
"가입일": ["2026-05-01", "2026-05-03", "2026-04-28", "2026-05-05", "2026-05-02"]
})
df["가입일"] = pd.to_datetime(df["가입일"])
filtered = df[df["이메일"].notna()]
result = filtered.sort_values("가입일", ascending=False)
print(result)
🖥️ 코드 실행 결과
이름 이메일 가입일
3 하은 ha@example.com 2026-05-05
0 민준 min@example.com 2026-05-01
2 지후 ji@example.com 2026-04-28
상세 설명
이메일이 있는 정상 회원만 탐색하고, 가입일이 최근인 순으로 정렬합니다. 실제 회원 데이터 관리에서 자주 쓰이는 조합입니다.
이메일이 있는 정상 회원만 탐색하고, 가입일이 최근인 순으로 정렬합니다. 실제 회원 데이터 관리에서 자주 쓰이는 조합입니다.