Sắp xếp DataFrame pandas với sort_values
Xếp hạng các hàng theo điểm, sắp xếp theo nhiều cột và chọn tăng hay giảm dần cho từng cột.
- sort_values(cột)
- ascending=False
- Sắp xếp theo nhiều cột
0 Ada952 Sam911 Lin88Sắp xếp hàng theo một cột
Sắp xếp dữ liệu giúp bạn dễ dàng xem bảng xếp hạng, dữ liệu theo thời gian hoặc tìm ra giá trị lớn nhất, nhỏ nhất. Trong pandas, phương thức sort_values() sắp xếp các hàng theo một hoặc nhiều cột và trả về một DataFrame mới.
Những điểm quan trọng
sort_values("score", ascending=False)đưa điểm cao nhất lên đầu.- Truyền list để sắp theo nhiều cột: by=[
"team","score"]. - Nhãn chỉ mục ban đầu đi theo hàng của nó.
Khi nào nên sử dụng?
- Đọc, làm sạch và biến đổi dữ liệu dạng bảng như file CSV hoặc Excel.
- Phân tích, thống kê và tổng hợp dữ liệu theo từng nhóm.
- Chuẩn bị dữ liệu cho báo cáo, biểu đồ hoặc mô hình machine learning.
Code ví dụ
import pandas as pd
students = pd.DataFrame({
"name": ["Ada", "Lin", "Sam"],
"score": [95, 88, 91],
})
ranked = students.sort_values("score", ascending=False)
print(ranked)
Kết quả khi chạy
name score
0 Ada 95
2 Sam 91
1 Lin 88
Giải thích code
Phương thức sort_values("score") sắp xếp các hàng theo cột điểm. Tham số ascending=False sắp xếp theo thứ tự giảm dần, nên sinh viên có điểm cao nhất đứng đầu. Chỉ số gốc của mỗi hàng vẫn được giữ nguyên, vì vậy bạn có thể thấy hàng của Sam vẫn mang chỉ số 2.
Thay đổi giá trị và chạy chương trình bằng trình chạy Python online của CodeUtility mà không cần cài Python.
Bài tập mở rộng
Hãy thử chỉnh sửa code theo các gợi ý dưới đây. Tự thay đổi và quan sát kết quả sẽ giúp bạn hiểu bài sâu hơn nhiều so với chỉ đọc code.
- Thêm dòng, cột và một vài giá trị bị thiếu vào dữ liệu mẫu.
- Kết hợp lọc, sắp xếp và groupby để tạo một báo cáo nhỏ.
- Đọc một file dữ liệu thật, kiểm tra kiểu dữ liệu của từng cột và xử lý các giá trị không hợp lệ.
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách