Hướng dẫn how to sort a dataframe in python - cách sắp xếp một khung dữ liệu trong python

DataFrame.sort_values ​​(bởi, *, trục = 0, tăng dần = truesort_values(by, *, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)[source]#

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 str

Tê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 {0 hoặc ‘index, 1 hoặc‘ cột,}, mặc định 0{0 or ‘index’, 1 or ‘columns’}, default 0

Trục được sắp xếp.

ascendingBool hoặc danh sách bool, mặc định đúngbool or list of bool, default True

Sắ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 False

Nế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 False

Nế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

Bạn có thể sắp xếp một khung dữ liệu trong Python không?

Để sắp xếp DataFrame dựa trên các giá trị trong một cột duy nhất, bạn sẽ sử dụng .sort_values ().Theo mặc định, điều này sẽ trả về một DataFrame mới được sắp xếp theo thứ tự tăng dần.Nó không sửa đổi DataFrame gốc.use . sort_values() . By default, this will return a new DataFrame sorted in ascending order. It does not modify the original DataFrame.

Cách chính xác để sắp xếp khung dữ liệu DF bằng cột_1 'là gì?

Bởi: Đơn/Danh sách tên cột để sắp xếp khung dữ liệu theo.Trục: 0 hoặc 'chỉ mục' cho các hàng và 1 hoặc 'cột' cho cột.Tăng dần: Giá trị Boolean sắp xếp khung dữ liệu theo thứ tự tăng dần nếu đúng.tại chỗ: giá trị boolean.