Chuyển đến nội dung chính

Pandas sort values: Hướng dẫn đầy đủ

Dùng sort_values() để sắp xếp lại các hàng theo giá trị cột. Áp dụng sort_index() để sắp xếp lại các hàng theo chỉ mục của DataFrame. Kết hợp cả hai phương pháp để khám phá dữ liệu từ nhiều góc độ.
Đã cập nhật 5 thg 10, 2026  · 4 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Việc tìm ra những điểm dữ liệu thú vị trong một DataFrame thường dễ hơn nếu bạn thay đổi thứ tự các hàng. Bạn có thể sắp xếp các hàng bằng cách truyền tên cột vào .sort_values().

Trong các trường hợp các hàng có cùng giá trị (điều này thường gặp nếu bạn sắp xếp theo biến phân loại), bạn có thể muốn phá vỡ thế hòa bằng cách sắp xếp theo một cột khác. Bạn có thể sắp xếp theo nhiều cột theo cách này bằng cách truyền vào một danh sách tên cột.

Ví dụ sắp xếp cột trong Pandas

Sắp xếp các hàng theo giá trị cột với sort_values()

Bạn có thể thay đổi thứ tự các hàng bằng cách sắp xếp để dữ liệu thú vị nhất nằm ở đầu DataFrame.

Sắp xếp theo một cột

Ví dụ, khi chúng ta áp dụng sort_values() lên cột weight_kg của DataFrame dogs, ta được chú chó nhẹ nhất ở đầu, Stella giống Chihuahua, và chú chó nặng nhất ở cuối, Bernie giống Saint Bernard.

dogs.sort_values("weight_kg")
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Đặt tham số ascending là False sẽ sắp xếp dữ liệu theo chiều ngược lại, từ nặng nhất đến nhẹ nhất.

dogs.sort_values("weight_kg", ascending=False)
      name        breed  color  height_cm  weight_kg date_of_birth
6   Bernie  St. Bernard  White         77         74    2018-02-27
4      Max     Labrador  Black         59         29    2017-01-20
0    Bella     Labrador  Brown         56         24    2013-07-01
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
5   Stella    Chihuahua    Tan         18          2    2015-04-20

Sắp xếp theo nhiều cột

Chúng ta có thể sắp xếp theo nhiều biến bằng cách truyền một danh sách tên cột vào sort_values. Ở đây, ta sắp xếp trước theo cân nặng, sau đó theo chiều cao. Lúc này, Charlie, Lucy và Bella được xếp từ thấp đến cao, dù chúng có cùng cân nặng.

dogs.sort_values(["weight_kg", "height_cm"])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
1  Charlie       Poodle  Black         43         24    2016-09-16
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
0    Bella     Labrador  Brown         56         24    2013-07-01
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Để thay đổi chiều sắp xếp của các giá trị, hãy truyền một danh sách vào tham số ascending để chỉ định hướng sắp xếp cho từng biến. Bây giờ, Charlie, Lucy và Bella được xếp từ cao đến thấp.

dogs.sort_values(["weight_kg", "height_cm"], ascending=[True, False])
      name        breed  color  height_cm  weight_kg date_of_birth
5   Stella    Chihuahua    Tan         18          2    2015-04-20
3   Cooper    Schnauzer   Gray         49         17    2011-12-11
0    Bella     Labrador  Brown         56         24    2013-07-01
2     Lucy    Chow Chow  Brown         46         24    2014-08-25
1  Charlie       Poodle  Black         43         24    2016-09-16
4      Max     Labrador  Black         59         29    2017-01-20
6   Bernie  St. Bernard  White         77         74    2018-02-27

Sắp xếp theo chỉ mục hàng với sort_index()

Đôi khi bạn có thể muốn sắp xếp lại các hàng dựa trên nhãn hàng của chúng (tức là chỉ mục của DataFrame) thay vì theo các cột cụ thể. Nếu vậy, bạn có thể dùng phương thức sort_index() thay cho sort_values(). Lưu ý rằng theo mặc định, sort_index() sẽ sắp xếp các hàng theo thứ tự tăng dần theo chỉ mục:

# Sort rows by their index (ascending)
dogs_sorted = dogs.sort_index()
print(dogs_sorted)

Nếu bạn cần sắp xếp các hàng theo thứ tự giảm dần, chỉ cần truyền ascending=False:

# Sort rows by their index (descending)
dogs_sorted_desc = dogs.sort_index(ascending=False)
print(dogs_sorted_desc)

Tương tự, nếu bạn có một chỉ mục nhiều cấp (phân cấp), sort_index() cũng có thể xử lý bằng cách sắp xếp ở nhiều cấp. Bạn chỉ cần truyền một danh sách vào tham số level hoặc ascending (giống như trước đó chúng ta phải truyền danh sách cho sort_values()):

# Sort rows by multiple levels of a multi-level index
dogs_sorted_multi = dogs.sort_index(level=[0, 1], ascending=[True, False])
print(dogs_sorted_multi)

Ví dụ tương tác về Pandas Sort Values

Trong ví dụ sau, bạn sẽ sắp xếp homelessness theo số lượng cá nhân vô gia cư, từ nhỏ đến lớn, và lưu lại dưới tên homelessness_ind. Cuối cùng, bạn sẽ in phần đầu của DataFrame đã sắp xếp.

# Sort homelessness by individuals
homelessness_ind = homelessness.sort_values("individuals")

# Print the top few rows
print(homelessness_ind.head())

Khi chạy đoạn mã trên, ta thu được kết quả sau:

                region         state  individuals  family_members  state_pop
50            Mountain       Wyoming        434.0           205.0     577601
34  West North Central  North Dakota        467.0            75.0     758080
7       South Atlantic      Delaware        708.0           374.0     965479
39         New England  Rhode Island        747.0           354.0    1058287
45         New England       Vermont        780.0           511.0     624358

Tự bạn thử.

Để tìm hiểu thêm về sắp xếp và chọn lọc dữ liệu, vui lòng xem video từ khóa học Data Manipulation with pandas của chúng tôi.

Nội dung này được trích từ khóa học Data Manipulation with pandas của DataCamp do Maggie Matsui và Richie Cotton biên soạn.

Tài liệu học thêm

Trong bài viết này, ngoài những nội dung khác, chúng ta đã học khi nào dùng sort_index() so với sort_values(): Dùng sort_values() khi bạn muốn sắp xếp lại các hàng dựa trên giá trị của các cột; dùng sort_index() khi bạn muốn sắp xếp lại các hàng dựa trên nhãn hàng (chỉ mục của DataFrame).

Chúng tôi có nhiều hướng dẫn pandas hữu ích khác để bạn tiếp tục học, bao gồm Hướng dẫn toàn diện về Pandas cho người mới bắt đầu để bạn có thể luyện tập thêm. Chúng tôi cũng có các bài how-to cụ thể cho những vấn đề thường gặp, bao gồm Cách nhập dữ liệu CSV vào Pandas và Cách nối DataFrame trong Pandas. Ngoài ra, hãy nhớ tham gia lộ trình kỹ năng Python Programming của chúng tôi để tiếp tục nâng cao kỹ năng. 

Chủ đề
Python

Học các khóa Python cùng DataCamp

Khóa học

Nhập môn Python

4 giờ
7.1M
Nắm vững phân tích dữ liệu với Python chỉ trong 4 giờ. Khóa học online này giúp bạn làm quen với giao diện Python và các thư viện phổ biến.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm