Menu
CoddyTech

Sắp xếp giá trị

Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 39 trên 60.

Ai ghi được nhiều điểm nhất? Sắp xếp câu trả lời để xem ngay. .sort_values("col") sắp xếp các hàng theo một cột, từ nhỏ nhất trước; ascending=False đưa giá trị lớn nhất lên trước:

Bảng người chơi theo thứ tự ban đầu ở bên trái và, sau một mũi tên, được sắp xếp theo điểm từ 31 xuống 8 ở bên phải; mỗi hàng vẫn giữ nhãn, hai người đứng đầu, Ben và Dee, được đánh dấu bằng 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))

Lệnh này in ra 2 dòng đầu:

  player  points
1    Ben      31
3    Dee      22

Các hàng giữ nguyên nhãn của mình: Ben vẫn có nhãn 1. Vì vậy, hàng đầu tiên của top là top.iloc[0], còn top.loc[0] vẫn là Ada.

sort_values trả về một bảng mới và giữ nguyên players, vì vậy hãy lưu kết quả vào một biến.

challenge icon

Thử thách

Trung bình

Một cửa hàng ứng dụng liệt kê các ứng dụng trong apps.csv, với các cột app, downloads_k (nghìn) và rating. Chương trình đọc tên một cột và một số n, sau đó sẽ in ra:

  1. n hàng có giá trị lớn nhất trong cột đó, theo thứ tự từ lớn nhất trở xuống.
  2. Lowest: và ứng dụng có giá trị nhỏ nhất.

Đoạn code ban đầu có hai lỗi sắp xếp. Hãy sửa cả hai. Với một cửa hàng khác, rating và n = 2:

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

Tự làm thử

import pandas as pd

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

# Đoạn code này in ra kết quả sai: hãy sửa lại
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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dữ liệu và biểu đồ

Tự luyện tập: Trình biên dịch Python online