Hướng dẫn dùng sort_index pandas python

Có hai cách phân loại có sẵn trong Panda:

Nội dung chính

  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :

Nội dung chính

  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • Theo nhãn
  • Theo giá trị

Xem xét ví dụ sau :

import pandas as pd
import numpy as np

unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
mns=['col2','col1'])
print unsorted_df

Kết quả :

col2       col1
1  -2.063177   0.537527
4   0.142932  -0.684884
6   0.012667  -0.389340
2  -0.548797   1.848743
3  -1.044160   0.837381
5   0.385605   1.300185
9   1.031425  -1.002967
8  -0.407374  -0.435142
0   2.237453  -1.067139
7  -1.445831  -1.701035

Trong unsorted_df, các nhãn và giá trị không được sắp xếp. Ta sẽ xem qua các cách sắp xếp

1. Theo nhãn ( Label )

Sử dụng phương thức sort_index (), bằng cách chuyển các đối số trục và thứ tự sắp xếp, DataFrame có thể được sắp xếp. Theo mặc định, việc sắp xếp được thực hiện trên các nhãn hàng theo thứ tự tăng dần

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
   mns = ['col2','col1'])

sorted_df=unsorted_df.sort_index()
print sorted_df

Kết quả :

col2       col1
0   0.208464   0.627037
1   0.641004   0.331352
2  -0.038067  -0.464730
3  -0.638456  -0.021466
4   0.014646  -0.737438
5  -0.290761  -1.669827
6  -0.797303  -0.018737
7   0.525753   1.628921
8  -0.567031   0.775951
9   0.060724  -0.322425

Thứ tự sắp xếp :

Bằng cách chuyển giá trị Boolean cho tham số tăng dần, thứ tự sắp xếp được kiểm tra. Chúng ta hãy xem xét ví dụ tương tự sau để hiểu.

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
   mns = ['col2','col1'])

sorted_df = unsorted_df.sort_index(ascending=False)
print sorted_df
col2        col1
9    0.825697    0.374463
8   -1.699509    0.510373
7   -0.581378    0.622958
6   -0.202951    0.954300
5   -1.289321   -1.551250
4    1.302561    0.851385
3   -0.157915   -0.388659
2   -1.222295    0.166609
1    0.584890   -0.291048
0    0.668444   -0.061294

Sắp xếp theo cột :

Bằng cách chuyển đối số trục với giá trị 0 hoặc 1, việc sắp xếp có thể được thực hiện trên các nhãn cột. Theo mặc định, axis = 0, sắp xếp theo hàng

import pandas as pd
import numpy as np
 
unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
   mns = ['col2','col1'])
 
sorted_df=unsorted_df.sort_index(axis=1)

print sorted_df

Kết quả :

col1        col2
1   -0.291048    0.584890
4    0.851385    1.302561
6    0.954300   -0.202951
2    0.166609   -1.222295
3   -0.388659   -0.157915
5   -1.551250   -1.289321
9    0.374463    0.825697
8    0.510373   -1.699509
0   -0.061294    0.668444
7    0.622958   -0.581378

2. Theo giá trị (Value):

Giống như sắp xếp theo chỉ mục, sort_values () là phương thức để sắp xếp theo giá trị. Nó dùng đối số 'by' sẽ sử dụng tên cột của DataFrame mà các giá trị sẽ được sắp xếp.

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
   sorted_df = unsorted_df.sort_values(by='col1')

print sorted_df

Kết quả :

col1  col2
1    1    3
2    1    2
3    1    4
0    2    1

Các giá trị col1 được sắp xếp và giá trị col2 và chỉ số hàng tương ứng sẽ thay đổi cùng với col1. Vì vậy, nó không được sắp xếp.

đối số 'by' nhận một danh sách các giá trị cột.

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
   sorted_df = unsorted_df.sort_values(by=['col1','col2'])

print sorted_df

Kết quả :

col1 col2
2   1   2
1   1   3
3   1   4
0   2   1

3. Thuật toán sắp xếp :

sort_values () cung cấp thuật toán như mergesort, heapsort và quicksort. Mergesort là thuật toán ổn định nhất.

Ví dụ :

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort')

print sorted_df

Kết quả :

col1 col2
1    1    3
2    1    2
3    1    4
0    2    1

Có hai cách phân loại có sẵn trong Panda:

Nội dung chính

  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • 1. Theo nhãn ( Label )
  • 2. Theo giá trị (Value):
  • 3. Thuật toán sắp xếp :
  • Theo nhãn
  • Theo giá trị

Xem xét ví dụ sau :

import pandas as pd
import numpy as np

unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
mns=['col2','col1'])
print unsorted_df

Kết quả :

col2       col1
1  -2.063177   0.537527
4   0.142932  -0.684884
6   0.012667  -0.389340
2  -0.548797   1.848743
3  -1.044160   0.837381
5   0.385605   1.300185
9   1.031425  -1.002967
8  -0.407374  -0.435142
0   2.237453  -1.067139
7  -1.445831  -1.701035

Trong unsorted_df, các nhãn và giá trị không được sắp xếp. Ta sẽ xem qua các cách sắp xếp

1. Theo nhãn ( Label )

Sử dụng phương thức sort_index (), bằng cách chuyển các đối số trục và thứ tự sắp xếp, DataFrame có thể được sắp xếp. Theo mặc định, việc sắp xếp được thực hiện trên các nhãn hàng theo thứ tự tăng dần

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
   mns = ['col2','col1'])

sorted_df=unsorted_df.sort_index()
print sorted_df

Kết quả :

col2       col1
0   0.208464   0.627037
1   0.641004   0.331352
2  -0.038067  -0.464730
3  -0.638456  -0.021466
4   0.014646  -0.737438
5  -0.290761  -1.669827
6  -0.797303  -0.018737
7   0.525753   1.628921
8  -0.567031   0.775951
9   0.060724  -0.322425

Thứ tự sắp xếp :

Bằng cách chuyển giá trị Boolean cho tham số tăng dần, thứ tự sắp xếp được kiểm tra. Chúng ta hãy xem xét ví dụ tương tự sau để hiểu.

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
   mns = ['col2','col1'])

sorted_df = unsorted_df.sort_index(ascending=False)
print sorted_df
col2        col1
9    0.825697    0.374463
8   -1.699509    0.510373
7   -0.581378    0.622958
6   -0.202951    0.954300
5   -1.289321   -1.551250
4    1.302561    0.851385
3   -0.157915   -0.388659
2   -1.222295    0.166609
1    0.584890   -0.291048
0    0.668444   -0.061294

Sắp xếp theo cột :

Bằng cách chuyển đối số trục với giá trị 0 hoặc 1, việc sắp xếp có thể được thực hiện trên các nhãn cột. Theo mặc định, axis = 0, sắp xếp theo hàng

import pandas as pd
import numpy as np
 
unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu
   mns = ['col2','col1'])
 
sorted_df=unsorted_df.sort_index(axis=1)

print sorted_df

Kết quả :

col1        col2
1   -0.291048    0.584890
4    0.851385    1.302561
6    0.954300   -0.202951
2    0.166609   -1.222295
3   -0.388659   -0.157915
5   -1.551250   -1.289321
9    0.374463    0.825697
8    0.510373   -1.699509
0   -0.061294    0.668444
7    0.622958   -0.581378

2. Theo giá trị (Value):

Giống như sắp xếp theo chỉ mục, sort_values () là phương thức để sắp xếp theo giá trị. Nó dùng đối số 'by' sẽ sử dụng tên cột của DataFrame mà các giá trị sẽ được sắp xếp.

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
   sorted_df = unsorted_df.sort_values(by='col1')

print sorted_df

Kết quả :

col1  col2
1    1    3
2    1    2
3    1    4
0    2    1

Các giá trị col1 được sắp xếp và giá trị col2 và chỉ số hàng tương ứng sẽ thay đổi cùng với col1. Vì vậy, nó không được sắp xếp.

đối số 'by' nhận một danh sách các giá trị cột.

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
   sorted_df = unsorted_df.sort_values(by=['col1','col2'])

print sorted_df

Kết quả :

col1 col2
2   1   2
1   1   3
3   1   4
0   2   1

3. Thuật toán sắp xếp :

sort_values () cung cấp thuật toán như mergesort, heapsort và quicksort. Mergesort là thuật toán ổn định nhất.

Ví dụ :

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort')

print sorted_df

Kết quả :

col1 col2
1    1    3
2    1    2
3    1    4
0    2    1

Có hai cách phân loại có sẵn trong Panda:

  • Theo nhãn
  • Theo giá trị

Xem xét ví dụ sau :

import pandas as pd import numpy as np unsorted_df=pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu mns=['col2','col1']) print unsorted_df

Kết quả :

col2 col1 1 -2.063177 0.537527 4 0.142932 -0.684884 6 0.012667 -0.389340 2 -0.548797 1.848743 3 -1.044160 0.837381 5 0.385605 1.300185 9 1.031425 -1.002967 8 -0.407374 -0.435142 0 2.237453 -1.067139 7 -1.445831 -1.701035

Trong unsorted_df, các nhãn và giá trị không được sắp xếp. Ta sẽ xem qua các cách sắp xếp

1. Theo nhãn ( Label )

Sử dụng phương thức sort_index (), bằng cách chuyển các đối số trục và thứ tự sắp xếp, DataFrame có thể được sắp xếp. Theo mặc định, việc sắp xếp được thực hiện trên các nhãn hàng theo thứ tự tăng dần

import pandas as pd import numpy as np unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu mns = ['col2','col1']) sorted_df=unsorted_df.sort_index() print sorted_df

Kết quả :

col2 col1 0 0.208464 0.627037 1 0.641004 0.331352 2 -0.038067 -0.464730 3 -0.638456 -0.021466 4 0.014646 -0.737438 5 -0.290761 -1.669827 6 -0.797303 -0.018737 7 0.525753 1.628921 8 -0.567031 0.775951 9 0.060724 -0.322425

Thứ tự sắp xếp :

Bằng cách chuyển giá trị Boolean cho tham số tăng dần, thứ tự sắp xếp được kiểm tra. Chúng ta hãy xem xét ví dụ tương tự sau để hiểu.

import pandas as pd import numpy as np unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu mns = ['col2','col1']) sorted_df = unsorted_df.sort_index(ascending=False) print sorted_df

col2 col1 9 0.825697 0.374463 8 -1.699509 0.510373 7 -0.581378 0.622958 6 -0.202951 0.954300 5 -1.289321 -1.551250 4 1.302561 0.851385 3 -0.157915 -0.388659 2 -1.222295 0.166609 1 0.584890 -0.291048 0 0.668444 -0.061294

Sắp xếp theo cột :

Bằng cách chuyển đối số trục với giá trị 0 hoặc 1, việc sắp xếp có thể được thực hiện trên các nhãn cột. Theo mặc định, axis = 0, sắp xếp theo hàng

import pandas as pd import numpy as np unsorted_df = pd.DataFrame(np.random.randn(10,2),index=[1,4,6,2,3,5,9,8,0,7],colu mns = ['col2','col1']) sorted_df=unsorted_df.sort_index(axis=1) print sorted_df

Kết quả :

col1 col2 1 -0.291048 0.584890 4 0.851385 1.302561 6 0.954300 -0.202951 2 0.166609 -1.222295 3 -0.388659 -0.157915 5 -1.551250 -1.289321 9 0.374463 0.825697 8 0.510373 -1.699509 0 -0.061294 0.668444 7 0.622958 -0.581378

2. Theo giá trị (Value):

Giống như sắp xếp theo chỉ mục, sort_values () là phương thức để sắp xếp theo giá trị. Nó dùng đối số 'by' sẽ sử dụng tên cột của DataFrame mà các giá trị sẽ được sắp xếp.

import pandas as pd import numpy as np unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]}) sorted_df = unsorted_df.sort_values(by='col1') print sorted_df

Kết quả :

col1 col2 1 1 3 2 1 2 3 1 4 0 2 1

Các giá trị col1 được sắp xếp và giá trị col2 và chỉ số hàng tương ứng sẽ thay đổi cùng với col1. Vì vậy, nó không được sắp xếp.

đối số 'by' nhận một danh sách các giá trị cột.

import pandas as pd import numpy as np unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]}) sorted_df = unsorted_df.sort_values(by=['col1','col2']) print sorted_df

Kết quả :

col1 col2 2 1 2 1 1 3 3 1 4 0 2 1

3. Thuật toán sắp xếp :

sort_values () cung cấp thuật toán như mergesort, heapsort và quicksort. Mergesort là thuật toán ổn định nhất.

Ví dụ :

import pandas as pd import numpy as np unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]}) sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort') print sorted_df

Kết quả :

col1 col2 1 1 3 2 1 2 3 1 4 0 2 1