Menu
CoddyTech

값 정렬하기

Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 39번째.

가장 높은 점수를 받은 사람은 누구일까요? 정렬하면 한눈에 답을 알 수 있습니다. .sort_values("col")은 열을 기준으로 행을 정렬하며, 기본적으로 가장 작은 값이 먼저 옵니다. ascending=False를 지정하면 가장 큰 값이 먼저 옵니다:

왼쪽에는 원래 순서의 선수 테이블이 있고, 화살표 다음 오른쪽에는 점수 기준으로 31부터 8까지 정렬된 테이블이 있습니다. 모든 행에 이름이 그대로 표시되어 있고, 상위 두 명인 Ben과 Dee에는 head(2)가 표시되어 있습니다.

players = pd.DataFrame({
    "player": ["Ada", "Ben", "Cy", "Dee", "Eli"],
    "points": [14, 31, 8, 22, 17],
})
top = players.sort_values("points", ascending=False)
print(top.head(2))

상위 2개를 출력합니다:

  player  points
1    Ben      31
3    Dee      22

행은 레이블을 그대로 유지합니다. Ben은 레이블 1을 유지합니다. 따라서 top의 첫 번째 행은 top.iloc[0]이고, top.loc[0]은 여전히 Ada입니다.

sort_values는 새 테이블을 반환하고 players는 그대로 두므로, 결과를 변수에 저장하세요.

challenge icon

챌린지

중급

앱 스토어에는 apps.csv에 앱 목록이 있으며, app, downloads_k(천 단위), rating 열이 있습니다. 프로그램은 열 이름과 숫자 n을 읽은 다음 다음을 출력해야 합니다.

  1. 해당 열에서 값이 가장 큰 n개 행을 큰 값부터 출력합니다.
  2. Lowest: 와 가장 작은 값의 앱을 출력합니다.

시작 코드에는 정렬 실수가 두 군데 있습니다. 둘 다 수정하세요. 다른 스토어에서 rating과 n = 2일 때:

       app  downloads_k  rating
2   PetPal           88     4.9
0  Zipline          512     4.5
Lowest: Mosaic

직접 해보기

import pandas as pd

apps = pd.read_csv("apps.csv")
column = input()
n = int(input())

# 이 코드는 잘못된 답을 출력합니다: 수정하세요
apps.sort_values(column, ascending=False)
print(apps.head(n))
lowest = apps.sort_values(column, ascending=False)
print(f"Lowest: {lowest.iloc[0]['app']}")
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

데이터와 시각화의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러