Cách sắp xếp khung dữ liệu dựa trên cột trong python

Trong bài viết này, chúng ta sẽ thảo luận về cách sắp xếp các hàng theo thứ tự tăng dần và giảm dần dựa trên các giá trị trong một hoặc nhiều cột. Ngoài ra, cách sắp xếp cột dựa trên giá trị trong hàng bằng DataFrame. sort_values()

Khung dữ liệu. sort_values()

Trong thư viện Pandas của Python, lớp Dataframe cung cấp một hàm thành viên để sắp xếp nội dung của khung dữ liệu i. e

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

Tranh luận

  • qua. Một chuỗi hoặc danh sách các chuỗi về cơ bản là tên cột hoặc nhãn chỉ mục dựa trên đó việc sắp xếp sẽ được thực hiện
  • trục. Nếu trục là 0, thì tên hoặc danh sách tên theo đối số sẽ được coi là tên cột. Mặc định là 0
    • Nếu trục là 1, thì tên hoặc danh sách tên theo đối số sẽ được coi là nhãn chỉ mục hàng
  • tăng dần. Nếu True sắp xếp tăng dần khác sắp xếp giảm dần. Mặc định là Đúng
  • thay thế. Nếu Đúng, hãy thực hiện thao tác tại chỗ trong Dataframe
  • na_position. Quyết định vị trí của NaN sau khi sắp xếp i. e. đầu tiên đặt NaN ở đầu, cuối cùng đặt NaN ở cuối
    Giá trị mặc định là 'đầu tiên'

Nó trả về một đối tượng khung dữ liệu được sắp xếp. Ngoài ra, nếu đối số tại chỗ không đúng thì nó sẽ trả về một bản sao được sắp xếp của khung dữ liệu đã cho, thay vì sửa đổi Khung dữ liệu ban đầu. Trong khi đó, nếu đối số tại chỗ là True thì nó sẽ làm cho khung dữ liệu hiện tại được sắp xếp

quảng cáo

Hãy hiểu bằng một số ví dụ,

Trước hết hãy tạo một đối tượng Dataframe i. e

Đọc thêm

  • gấu trúc. Áp dụng chức năng cho cột
  • Pandas Tutorial #11 - Thuộc tính & phương thức DataFrame
  • Kiểm tra xem chuỗi có bắt đầu bằng bất kỳ chuỗi nào từ Danh sách trong Python không
  • Cách lấy Kích thước mảng Numpy bằng cách sử dụng numpy. ndarray. hình dạng…

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])

Nội dung của đối tượng khung dữ liệu đã tạo dfObj là,

   Name  Marks      City
b  Jack     34    Sydney
a  Riti     41     Delhi
f  Aadi     16  New York
e  Riti     22     Delhi
d  Riti     35     Delhi
c  Riti     40    Mumbai

Bây giờ hãy xem cách sắp xếp khung dữ liệu này theo các cách khác nhau,

Sắp xếp các hàng Dataframe dựa trên một cột

Để sắp xếp tất cả các hàng trong khung dữ liệu trên dựa trên cột 'Tên', chúng ta sẽ chuyển tên cột theo đối số i. e

# Sort the rows of dataframe by column 'Name'
dfObj = dfObj.sort_values(by ='Name' )

print("Contents of Sorted Dataframe based on a single column 'Name' : ")
print(dfObj)

đầu ra

Contents of Sorted Dataframe based on a single column 'Name' : 
   Name  Marks      City
f  Aadi     16  New York
b  Jack     34    Sydney
a  Riti     41     Delhi
e  Riti     22     Delhi
d  Riti     35     Delhi
c  Riti     40    Mumbai

Như chúng ta có thể thấy ở đầu ra, nó đã sắp xếp tất cả các hàng trong khung dữ liệu dựa trên cột 'Tên'. Bây giờ nếu bạn quan sát sâu, bạn sẽ thấy tên cột cho 4 hàng có cùng giá trị. Bây giờ nếu chúng ta muốn sắp xếp theo cách các giá trị giống nhau ở một cột thì sao, sau đó sử dụng cột thứ 2 để sắp xếp các hàng đó?
Hãy xem làm thế nào để làm điều đó

Sắp xếp các hàng Dataframe dựa trên nhiều cột

Để sắp xếp tất cả các hàng trong khung dữ liệu trên dựa trên hai cột i. e. 'Name' & 'Marks', chúng ta sẽ chuyển các tên cột dưới dạng danh sách theo đối số i. e

dfObj = dfObj.sort_values(by =['Name', 'Marks'])

print("Contents of a Sorted Dataframe based on multiple columns 'Name' & 'Marks' : ")
print(dfObj)

đầu ra

Contents of a Sorted Dataframe based on multiple columns 'Name' & 'Marks' : 
   Name  Marks      City
f  Aadi     16  New York
b  Jack     34    Sydney
e  Riti     22     Delhi
d  Riti     35     Delhi
c  Riti     40    Mumbai
a  Riti     41     Delhi

Bây giờ, trước tiên, nó sẽ sắp xếp tất cả các hàng dựa trên cột 'Tên'. Nếu một số hàng có cùng giá trị trong cột 'Tên' thì nó sẽ sắp xếp các hàng đó dựa trên giá trị trong cột 'Marks'

Sắp xếp các hàng Dataframe dựa trên các cột theo thứ tự giảm dần

Để sắp xếp tất cả các hàng trong khung dữ liệu trên dựa trên các cột theo thứ tự giảm dần, hãy chuyển đối số tăng dần với giá trị Sai cùng với đối số i. e

# Sort the rows of dataframe by column 'Name' in descending order
dfObj = dfObj.sort_values(by ='Name' , ascending=False)

print("Contents of Sorted Dataframe based on a column 'Name' in Descending Order : ")
print(dfObj)

đầu ra

________số 8_______

Nó sẽ sắp xếp tất cả các hàng trong Dataframe dựa trên cột 'Tên' theo thứ tự giảm dần

Sắp xếp các hàng Dataframe dựa trên một cột trong Place

Để sắp xếp tất cả các hàng trong khung dữ liệu trên dựa trên một cột duy nhất, hãy chuyển một đối số bổ sung tại chỗ có giá trị True cùng với các đối số khác i. e

# Sort the rows of dataframe by column 'Name' inplace
dfObj.sort_values(by='Name' , inplace=True)

print("Contents of Sorted Dataframe based on a single column 'Name' inplace: ")
print(dfObj)

đầu ra

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
0

Nó sẽ sắp xếp tất cả các hàng trong Dataframe dựa trên cột 'Tên' tại chỗ

Cho đến bây giờ, chúng tôi đã sắp xếp các hàng trong khung dữ liệu dựa trên các cột, nếu chúng tôi muốn ngược lại thì sao?. e

Sắp xếp các cột của Dataframe dựa trên một hoặc nhiều hàng

Giả sử chúng ta có một khung dữ liệu gồm các số i. e

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
1

Nội dung của khung dữ liệu là,

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
2

Sắp xếp các cột của Dataframe dựa trên một hàng

Để sắp xếp các cột của khung dữ liệu này dựa trên một hàng, hãy chuyển các nhãn chỉ mục hàng theo đối số và axis=1 i. e

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
3

đầu ra

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
4

Vì vậy, tất cả các cột trong khung dữ liệu được sắp xếp dựa trên một hàng có nhãn chỉ mục 'b'

Sắp xếp các cột của Khung dữ liệu theo Thứ tự giảm dần dựa trên một hàng

Để sắp xếp các cột của khung dữ liệu này theo thứ tự giảm dần dựa trên một đối số vượt qua một hàng tăng dần=Sai cùng với các đối số khác i. e

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
5

đầu ra

# List of Tuples
students = [ ('Jack', 34, 'Sydney') ,
             ('Riti', 41, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ,
             ('Riti', 22, 'Delhi' ) ,
             ('Riti', 35, 'Delhi' ) ,
             ('Riti', 40, 'Mumbai' )
              ]

# Create a DataFrame object
dfObj = pd.DataFrame(students, columns=['Name', 'Marks', 'City'], index=['b', 'a', 'f', 'e', 'd', 'c'])
6

Sắp xếp các cột của Dataframe dựa trên nhiều hàng

Để sắp xếp các cột trong khung dữ liệu được sắp xếp dựa trên nhiều hàng có nhãn chỉ mục 'b' & 'c' chuyển danh sách theo đối số và axis=1 i. e