Sắp xếp theo các giá trị dọc theo một trong hai trục.
Tham số bystr hoặc danh sách strbystr or list of strTên hoặc danh sách các tên để sắp xếp theo.
Nếu trục là 0 hoặc ‘chỉ mục thì có thể chứa các mức chỉ mục và/hoặc nhãn cột.
Nếu trục là 1 hoặc ‘cột thì có thể chứa các cấp cột và/hoặc nhãn chỉ mục.
Trục được sắp xếp.
ascendingBool hoặc danh sách bool, mặc định đúngbool or list of bool, default TrueSắp xếp tăng dần so với giảm dần. Chỉ định danh sách cho nhiều đơn đặt hàng sắp xếp. Nếu đây là danh sách các bools, phải khớp với độ dài của BY.
inplaceBool, mặc định saibool, default FalseNếu đúng, hãy thực hiện hoạt động tại chỗ.
Kind {‘Quicksort,‘ Mergesort, ‘Heapsort,‘ ổn định}, mặc định ‘QuickSort,{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, default ‘quicksort’Lựa chọn phân loại thuật toán. Xem thêm numpy.sort() để biết thêm thông tin. Mergesort và ổn định là các thuật toán ổn định duy nhất. Đối với DataFrames, tùy chọn này chỉ được áp dụng khi sắp xếp trên một cột hoặc nhãn.
Na_Poseition {’đầu tiên,’ cuối cùng}, mặc định ’cuối cùng{‘first’, ‘last’}, default ‘last’Đặt Nans ở đầu nếu đầu tiên; Cuối cùng đặt Nans vào cuối.
bỏ qua_indexbool, mặc định saibool, default FalseNếu đúng, trục kết quả sẽ được dán nhãn 0, 1,,, n - 1.
Mới trong phiên bản 1.0.0.
KeyCallable, tùy chọncallable, optionalÁp dụng chức năng khóa cho các giá trị trước khi sắp xếp. Điều này tương tự như đối số chính trong hàm sorted() tích hợp, với sự khác biệt đáng chú ý là chức năng khóa này nên được vector hóa. Nó sẽ mong đợi một Series và trả về một chuỗi có hình dạng giống như đầu vào. Nó sẽ được áp dụng cho mỗi cột trong bằng cách độc lập.
Mới trong phiên bản 1.1.0.
ReturnSdatAframe hoặc không cóDataFrame với các giá trị được sắp xếp hoặc không có nếu >>> df.sort_values(by=['col1']) col1 col2 col3 col4 0 A 2 0 a 1 A 1 1 B 2 B 9 9 c 5 C 4 3 F 4 D 7 2 e 3 NaN 8 4 D 0.
Ví dụ
>>> df = pd.DataFrame({ ... 'col1': ['A', 'A', 'B', np.nan, 'D', 'C'], ... 'col2': [2, 1, 9, 8, 7, 4], ... 'col3': [0, 1, 9, 4, 2, 3], ... 'col4': ['a', 'B', 'c', 'D', 'e', 'F'] ... }) >>> df col1 col2 col3 col4 0 A 2 0 a 1 A 1 1 B 2 B 9 9 c 3 NaN 8 4 D 4 D 7 2 e 5 C 4 3 F
Sắp xếp theo Col1
>>> df.sort_values(by=['col1']) col1 col2 col3 col4 0 A 2 0 a 1 A 1 1 B 2 B 9 9 c 5 C 4 3 F 4 D 7 2 e 3 NaN 8 4 D
Sắp xếp theo nhiều cột
>>> df.sort_values(by=['col1', 'col2']) col1 col2 col3 col4 1 A 1 1 B 0 A 2 0 a 2 B 9 9 c 5 C 4 3 F 4 D 7 2 e 3 NaN 8 4 D
Sắp xếp giảm dần
>>> df.sort_values(by='col1', ascending=False) col1 col2 col3 col4 4 D 7 2 e 5 C 4 3 F 2 B 9 9 c 0 A 2 0 a 1 A 1 1 B 3 NaN 8 4 D
Đặt NAS lên hàng đầu
>>> df.sort_values(by='col1', ascending=False, na_position='first') col1 col2 col3 col4 3 NaN 8 4 D 4 D 7 2 e 5 C 4 3 F 2 B 9 9 c 0 A 2 0 a 1 A 1 1 B
Sắp xếp với một chức năng chính
>>> df.sort_values(by='col4', key=lambda col: col.str.lower()) col1 col2 col3 col4 0 A 2 0 a 1 A 1 1 B 2 B 9 9 c 3 NaN 8 4 D 4 D 7 2 e 5 C 4 3 F
Sắp xếp tự nhiên với đối số chính, sử dụng gói Natsort.
>>> df = pd.DataFrame({ ... "time": ['0hr', '128hr', '72hr', '48hr', '96hr'], ... "value": [10, 20, 30, 40, 50] ... }) >>> df time value 0 0hr 10 1 128hr 20 2 72hr 30 3 48hr 40 4 96hr 50 >>> from natsort import index_natsorted >>> df.sort_values( ... by="time", ... key=lambda x: np.argsort(index_natsorted(df["time"])) ... ) time value 0 0hr 10 3 48hr 40 2 72hr 30 4 96hr 50 1 128hr 20