Hướng dẫn how do i sort by two criteria in python? - làm cách nào để sắp xếp theo hai tiêu chí trong python?

Liệt kê ba tiêu chí trong khóa của bạn:

sorted(inputlist, key=lambda e: (len(e[0]), e[0], e[1]))

Bây giờ bạn đang sắp xếp từng phần tử trước theo độ dài, sau đó bằng cách so sánh trực tiếp phần tử đầu tiên (chỉ được sử dụng khi phần tử đầu tiên có độ dài bằng nhau), sau đó bằng giá trị của số nguyên cuối cùng.

Python sắp xếp các bộ dữ liệu và danh sách như những từ vựng này; So sánh phần tử thứ nhất và chỉ khi điều đó không khác nhau, hãy so sánh phần tử thứ hai, v.v.

Phần tử thứ hai ở đây là


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
1 sẽ chỉ được sử dụng nếu cả hai mục được so sánh đều có danh sách lồng nhau có độ dài bằng nhau. Đây là một lần nữa so sánh từ vựng, vì vậy việc ghép các yếu tố cho đến khi một cặp khác nhau.

Bạn có thể sắp xếp gấu trúc DataFrame theo một hoặc nhiều (một hoặc nhiều) các cột bằng phương thức sort_values ​​() và bằng cách tăng dần hoặc giảm dần. Để chỉ định đơn đặt hàng, bạn phải sử dụng thuộc tính boolean


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
2;

# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
3 cho giảm dần và

# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
4 để tăng dần. Theo mặc định, nó được đặt thành true.

Trong bài viết này, tôi sẽ giải thích cách sắp xếp gấu trúc DataFrame bằng một hoặc nhiều cột. Theo mặc định sort_values ​​() trả về một bản sao chép dữ liệu với kết quả sắp xếp. Để sắp xếp trên DataFrame hiện tại, sử dụng


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
5.

1. Ví dụ nhanh về sắp xếp theo nhiều cột trong gấu trúc

Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách sắp xếp theo nhiều cột trong Pandas DataFrame.


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")

Hãy để tạo ra một khung dữ liệu với một vài hàng và cột và thực hiện một số ví dụ để tìm hiểu cách sắp xếp hoạt động.


import pandas as pd
technologies = ({
    'Courses':["Spark","Hadoop","pandas","Oracle","Java"],
    'Fee' :[20000,25000,26000,22000,20000],
    'Duration':['30days','35days','40days','50days','60days'],
    'Discount':[1000,2300,1500,1200,2500]
               })
df = pd.DataFrame(technologies, index = ['r1','r2','r3','r4','r0'])
print(df)

Năng suất dưới đầu ra.


   Courses    Fee Duration  Discount
r1   Spark  20000   30days      1000
r2  Hadoop  25000   35days      2300
r3  pandas  26000   40days      1500
r4  Oracle  22000   50days      1200
r0    Java  20000   60days      2500

Bằng cách sử dụng phương thức sort_Values ​​(), bạn có thể sắp xếp nhiều cột theo DataFrame bằng cách tăng dần hoặc giảm dần. Khi không được chỉ định, tất cả các cột được chỉ định được sắp xếp theo thứ tự tăng dần.


# Sort multiple columns
df2 = df.sort_values(['Fee', 'Discount'])
print(df2)

Năng suất dưới đầu ra.


   Courses    Fee Duration  Discount
r1   Spark  20000   30days      1000
r0    Java  20000   60days      2500
r4  Oracle  22000   50days      1200
r2  Hadoop  25000   35days      2300
r3  pandas  26000   40days      1500

Bằng cách sử dụng phương thức sort_Values ​​(), bạn có thể sắp xếp nhiều cột theo DataFrame bằng cách tăng dần hoặc giảm dần. Khi không được chỉ định, tất cả các cột được chỉ định được sắp xếp theo thứ tự tăng dần.


# Sort ascending order
df.sort_values(by=['Fee','Discount'], inplace=True)
print(df)

Trong trường hợp nếu bạn muốn cập nhật DataFrame hiện tại sử dụng


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
5.

Mang lại đầu ra giống như trên.

3. Sắp xếp theo thứ tự tăng dần


# Sort ascending order
df.sort_values(by=['Fee','Discount'], inplace=True,
               ascending = [True, True])
print(df)

Năng suất dưới đầu ra.


   Courses    Fee Duration  Discount
r1   Spark  20000   30days      1000
r0    Java  20000   60days      2500
r4  Oracle  22000   50days      1200
r2  Hadoop  25000   35days      2300
r3  pandas  26000   40days      1500

Bằng cách sử dụng phương thức sort_Values ​​(), bạn có thể sắp xếp nhiều cột theo DataFrame bằng cách tăng dần hoặc giảm dần. Khi không được chỉ định, tất cả các cột được chỉ định được sắp xếp theo thứ tự tăng dần.

Trong trường hợp nếu bạn muốn cập nhật DataFrame hiện tại sử dụng


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
5.


# Sort descending order
df.sort_values(by=['Fee','Discount'], inplace=True,
               ascending = [True, False])
print(df)

Năng suất dưới đầu ra.


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
0

Bằng cách sử dụng phương thức sort_Values ​​(), bạn có thể sắp xếp nhiều cột theo DataFrame bằng cách tăng dần hoặc giảm dần. Khi không được chỉ định, tất cả các cột được chỉ định được sắp xếp theo thứ tự tăng dần.

Trong trường hợp nếu bạn muốn cập nhật DataFrame hiện tại sử dụng


# Below are quick example
# Sort multiple columns
df2 = df.sort_values(['Fee', 'Duration'],
              ascending = [False, True])

# Sort by two columns 
df2 = df.sort_values(['Courses', 'Discount'],
              ascending = [True, True])

# Using the sorting function
df.sort_values(["Fee", "Courses"],
               axis = 0, ascending = True,
               inplace = True,
               na_position = "first")
5.

Mang lại đầu ra giống như trên.

3. Sắp xếp theo thứ tự tăng dần

  • Sử dụng
    
    # Below are quick example
    # Sort multiple columns
    df2 = df.sort_values(['Fee', 'Duration'],
                  ascending = [False, True])
    
    # Sort by two columns 
    df2 = df.sort_values(['Courses', 'Discount'],
                  ascending = [True, True])
    
    # Using the sorting function
    df.sort_values(["Fee", "Courses"],
                   axis = 0, ascending = True,
                   inplace = True,
                   na_position = "first")
    
    2 PARAM để sắp xếp DataFrame theo thứ tự tăng dần hoặc giảm dần. Khi bạn có nhiều cột sắp xếp. Theo mặc định, nó sắp xếp theo thứ tự tăng dần.
  • 4. Sắp xếp nhiều cột theo thứ tự giảm dần
  • Trong trường hợp bạn muốn sắp xếp theo thứ tự giảm dần, hãy sử dụng
    
    # Below are quick example
    # Sort multiple columns
    df2 = df.sort_values(['Fee', 'Duration'],
                  ascending = [False, True])
    
    # Sort by two columns 
    df2 = df.sort_values(['Courses', 'Discount'],
                  ascending = [True, True])
    
    # Using the sorting function
    df.sort_values(["Fee", "Courses"],
                   axis = 0, ascending = True,
                   inplace = True,
                   na_position = "first")
    
    8. Bạn cũng có thể chỉ định các đơn đặt hàng khác nhau cho mỗi đầu vào.
  • Sự kết luận
  • Trong bài viết này, bạn đã học được cách sắp xếp DataFrame theo nhiều cột bằng cách sử dụng dataFrame.sort_values ​​() bằng cách tăng dần hoặc giảm dần.

Học hỏi hạnh phúc !!

  • https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html

Những bài viết liên quan

Sử dụng Sắp xếp () và Toán tử.ItemGetter () để sắp xếp danh sách theo hai trường.Gọi sắp xếp (a_list, key = k) với k là toán tử. itemgetter() to sort a list by two fields. Call sorted(a_list, key = k) with k as operator.

Làm thế nào để bạn sắp xếp với hai điều kiện?

Dưới đây là các bước để phân loại đa cấp bằng hộp thoại:..
Chọn toàn bộ tập dữ liệu mà bạn muốn sắp xếp ..
Nhấp vào tab Dữ liệu ..
Nhấp vào biểu tượng sắp xếp (một hình dưới đây).....
Trong hộp thoại sắp xếp, thực hiện các lựa chọn sau.....
Nhấp vào Thêm cấp độ (điều này sẽ thêm một cấp độ khác của các tùy chọn sắp xếp) ..