Trang chủ » Bài 13: Sort ( Sắp xếp ) – Python Panda
Bài 13: Sort ( Sắp xếp ) – Python Panda
Góc học tậpKhóa học Python miễn phí

Bài 13: Sort ( Sắp xếp ) – Python Panda

Admin 27 Th11, 2021
Chia sẻ:
68 0
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

BÀI TIẾP THEO: LÀM VIỆC VỚI DỮ LIỆU TEXT (P1) >>

Từ khóa:
Chia sẻ:
68 0

Bình luận

Leave a Reply

avatar
  Subscribe  
Notify of